這是我的persistence.xml的樣品和applicationContext.xml中 http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd」 版本= 「1.0」?>
<persistence-unit name="acme" transaction-type="JTA">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<jta-data-source>java:/acmeDS</jta-data-source>
<properties>
<property name="hibernate.hbm2ddl.auto" value="none" />
<property name="hibernate.show_sql" value="true" />
<property name="jboss.entity.manager.factory.jndi.name" value="persistence-units/acmeManager"/>
<property name="jboss.entity.manager.jndi.name" value="persistence-units/acme"/>
</properties>
</persistence-unit>
和春季的context.xml
<jee:jndi-lookup id="entityManagerFactory" jndi-name="persistence-units/acme" />
<bean
class="org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor" />
感謝您的回覆。但現在我的問題是,Spring如何知道在哪裏尋找entitymanagerfactory。我的意思是我如何聲明一個spring bean,以便它會查找已經在jndi中註冊過的持久化單元。 – user509755 2011-04-08 18:17:27
我不確定我是否確切地得到了問題,但從我的看法來看,您可以在您的Persistence.jar中聲明一個spring上下文,並將其導入爲您的war和/或EJB定義的上下文中。 – sebastiencol 2011-04-11 09:27:38
我發現我必須使用 在jboss jndi上下文中使用實體管理器工廠。但是當我在Spring 3中使用上面的bean聲明時,它會拋出NameNotFoundException異常。 –
user509755
2011-04-12 23:10:22