定义oracle-ds.xml
<local-tx-datasource>
<jndi-name>timekerOracleDS</jndi-name>
....
</local-tx-datasource>
定义persistence.xml
<persistence-unit name="timeker" transaction-type="JTA">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<jta-data-source>java:timekerOracleDS</jta-data-source>
<properties>
<property name="hibernate.dialect" value="org.hibernate.dialect.OracleDialect"/>
<property name="hibernate.hbm2ddl.auto" value="update"/>
<property name="hibernate.show_sql" value="true"/>
<property name="hibernate.format_sql" value="true"/>
<property name="jboss.entity.manager.factory.jndi.name" value="java:/timeker"/>
</properties>
</persistence-unit>
定义spring applicationContext.xml
<aop:aspectj-autoproxy />
<context:annotation-config />
<context:component-scan base-package="com.paokuang"/>
<jee:jndi-lookup id="entityManagerFactory" jndi-name="java:/timeker"/>
<bean id="txManager" class="org.springframework.transaction.jta.JtaTransactionManager">
<property name="transactionManagerName" value="java:/TransactionManager"/>
<property name="userTransactionName" value="UserTransaction"/>
</bean>
<tx:annotation-driven transaction-manager="txManager"/>
在web.xml
文件
<persistence-unit-ref>
<persistence-unit-ref-name>persistence/timeker</persistence-unit-ref-name>
<persistence-unit-name>timeker</persistence-unit-name>
</persistence-unit-ref>
但是当我将战争部署到jboss时,发生了错误:
Error creating bean with name 'productTypeServiceBean': Injection of persistence fields failed; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No unique bean of type [javax.persistence.EntityManagerFactory] is defined: expected single bean but found 0
如何解决问题或告诉正确的配置spring + jpa + jboss?
答案 0 :(得分:0)
您遗失了EntityManagerFactory
中的applicationContext.xml
bean。
可能最简单的方法是配置LocalContainerEntityManagerFactoryBean
:
<bean id="myEmf" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
<property name="dataSource" ref="someDataSource"/>
<property name="loadTimeWeaver">
<bean class="org.springframework.instrument.classloading.InstrumentationLoadTimeWeaver"/>
</property>
</bean>
有关详细信息,请参阅http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/orm.html。