这是我的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