java - Spring/JPA/Hibernate 持久实体 : Nothing happen

标签 java spring hibernate jpa-2.0

我正在尝试使用 Spring 3、JPA 2 和 Hibernate 3 创建一个应用程序。 当你坚持一个实体时我遇到了一个问题:没有任何反应!数据没有插入数据库,也没有执行查询。 但是当我使用像 query.getResultList() 这样的请求时,选择工作正常。

所以我认为我的问题只存在于持久化/更新和事务管理器上,但我对 spring 并不是很擅长。 你能帮帮我吗?

这是我的配置文件:

My applicationContext.xml

    <jee:jndi-lookup id="soireeentreamis_DS" jndi-name="jdbc/soireeentreamis" />

    <bean id="persistenceUnitManager"
        class="org.springframework.orm.jpa.persistenceunit.DefaultPersistenceUnitManager">
        <property name="persistenceXmlLocations">
            <list>
                <value>classpath*:META-INF/persistence.xml</value>
            </list>
        </property>
        <property name="defaultDataSource" ref="soireeentreamis_DS" />
        <property name="dataSources">
            <map>
                <entry key="soireeentreamisDS" value-ref="soireeentreamis_DS" />
            </map>
        </property>
    </bean>

    <bean id="entityManagerFactory"
        class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
        <property name="persistenceUnitManager" ref="persistenceUnitManager" />
        <property name="persistenceUnitName" value="soireeentreamisPU" />
        <property name="jpaDialect">
            <bean class="org.springframework.orm.jpa.vendor.HibernateJpaDialect" />
        </property>
        <property name="jpaVendorAdapter">
            <bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
                <property name="showSql" value="false" />
            </bean>
        </property>
    </bean>

    <bean id="soireeentreamisTransactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
        <property name="entityManagerFactory" ref="entityManagerFactory" />
        <property name="jpaDialect">
            <bean class="org.springframework.orm.jpa.vendor.HibernateJpaDialect" />
        </property>
    </bean>

    <tx:annotation-driven transaction-manager="soireeentreamisTransactionManager" />

    <context:annotation-config />
</beans>

My persistence.xml

    <persistence-unit name="soireeentreamisPU"
        transaction-type="RESOURCE_LOCAL">
        <provider>org.hibernate.ejb.HibernatePersistence</provider>
        <non-jta-data-source>soireeentreamisDS</non-jta-data-source>
        <properties>
            <property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect" />
            <property name="hibernate.hbm2ddl.auto" value="create"/>
        </properties>
    </persistence-unit>

My service

@Service
@Transactional("soireeentreamisTransactionManager")
public class UserServiceImpl implements UserService ...

My dao

@Repository
public class UserDaoImpl extends GenericDaoImpl<User, String> implements
        UserDao {  
@PersistenceContext(unitName = "soireeentreamisPU")
private EntityManager em;   
public void persist(final User entity) {
        em.persist(entity);
    }
}

有人可以帮帮我吗?

最佳答案

我刚才发现了类似的问题。在我的例子中,我需要将下面的行添加到我的 dispacher-servlet.xml 中。所以我在 2 个地方需要这个(applicationContex.xml 和 dispacher-servlet.xml)

<tx:annotation-driven />

为了清除一些东西,您没有显示“存储”对象的服务方法,但我相信它是用@Transactional 注释的 - 因为没有这个您想要创建新事务。

关于java - Spring/JPA/Hibernate 持久实体 : Nothing happen,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13474458/

相关文章:

java - 大数的质因数分解

java - 我们真的需要在ThreadLocal中设置Transaction吗?

spring - 如何在 Spring Boot Embedded tomcat 中服务外部静态 HTML 文件?

javascript - 使用 Spring 的静态 Assets 缓存

java - Hibernate Fetch Join 仍在触发选择

java - Grails 3.1.2 无法运行错误 org.hibernate.hbm2ddl.schemaupdate - hhh000388

java - 如何模式匹配第一次出现?

java - Camel 文件输入连续读取同一文件,即使给定 noop=true

java - ConstraintValidator 也适用于单个字段和集合

java - 使用struts 2和hibernate在jsp页面中显示Blob(图像)