2013-04-29 95 views
0

我的应用程序中有entitymanager问题。它不会保留对象DB ../java/resources/META-INF/persistence.xmlEntitymanager不会持续

<persistence-unit name="dataSource" transaction-type="RESOURCE_LOCAL"> 
    </persistence-unit> 

../java/resources/database/DataSource.xml

<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> 
     <property name="location"> 
      <value>classpath:properties/database.properties</value> 
     </property> 
    </bean> 

    <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> 
     <property name="driverClassName" value="${jdbc.driverClassName}" /> 
     <property name="url" value="${jdbc.url}" /> 
     <property name="username" value="${jdbc.username}" /> 
     <property name="password" value="${jdbc.password}" /> 
    </bean> 

。 ./java/webapp/WEB-INF/applicationContext.xml

<context:annotation-config /> 
    <context:component-scan base-package="com.springapp.mvc" /> 

    <mvc:annotation-driven/> 

    <import resource="classpath:database/DataSource.xml"/> 

    <bean class="org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor" /> 

    <bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"> 
     <property name="jpaVendorAdapter"> 
      <bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter"> 
       <property name="showSql" value="true" /> 
       <property name="generateDdl" value="true" /> 
       <property name="databasePlatform" value="org.hibernate.dialect.PostgreSQL82Dialect" /> 
      </bean> 
     </property> 

     <property name="dataSource" ref="dataSource" /> 
    </bean> 

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

    <bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager"> 
     <property name="dataSource" ref="dataSource" /> 
     <property name="entityManagerFactory" ref="entityManagerFactory" /> 
    </bean> 



</beans> 

它有什么问题?

+0

给定的代码是否在事务中运行?是否有任何异常抛出 – 2013-04-30 03:19:18

+0

代码正在运行,没有例外,但它不会持续 – Yeynno 2013-04-30 09:23:12

回答

0

我想你需要指定什么是你的持久性单元提供者。例如:

<persistence-unit name="dataSource" transaction-type="RESOURCE_LOCAL"> 
    <provider>org.hibernate.ejb.HibernatePersistence</provider> 
</persistence-unit> 

您还需要对它进行配置(例如,如果休眠,什么方言,字符集等),并添加所有需要的依赖。

考虑使用Spring Roo工具来简化所有这些任务

+0

如何不使用ejb? – Yeynno 2013-04-30 00:30:51

+0

以上只是指定您使用的是哪个JPA提供程序。不一定使用EJB(我假设你正在想象EJB 2)。无论如何,我认为JPA和新的EJB 3是相关的。 – gerrytan 2013-04-30 00:35:24