Hibernate 通过Spring和JPA在服务器提供的数据源中使用多个持久化单元

Hibernate 通过Spring和JPA在服务器提供的数据源中使用多个持久化单元,hibernate,spring,jpa,jboss,Hibernate,Spring,Jpa,Jboss,我正在寻找关于如何配置SpringLocalContainerEntityManagerFactory的文档,它可以使用persistence.xml中的多个持久性单元。我想使用jndi数据源。如果可能,我还希望使用服务器管理的实体工厂,而不是使用localcontainerentitymanagerfactory <jee:jndi-lookup id="entityManagerFactory" jndi-name="persistence-units/pu1"/> 有人能

我正在寻找关于如何配置SpringLocalContainerEntityManagerFactory的文档,它可以使用persistence.xml中的多个持久性单元。我想使用jndi数据源。如果可能,我还希望使用服务器管理的实体工厂,而不是使用localcontainerentitymanagerfactory

<jee:jndi-lookup id="entityManagerFactory" jndi-name="persistence-units/pu1"/>


有人能告诉我这个配置的正确方向吗?另外,我想使用@PersistenceContext在我的dao类中注入entitymanager,我认为不可能实现您想要的功能。每个EntityManager都绑定到一个(并且只有一个)持久性单元,因此如果要使用N个持久性单元,则需要实例化N个EntityManager工厂


这样做的“问题”是,您需要用@PersistenceContext注释EntityManager的每个用法,并指定要使用哪个实体管理器。

我想我没有正确地提出这个问题。是的,我同意你的观点,我们必须在spring上下文中定义多个EMF,并用@PersistenceContext(unitName=“pu1”)等注释dao。但在春天,有3种不同的方法可以提高电动势。一个是localContainerEMFbean,另一个是j2ee jndi,其中服务器将提供持久化单元。我的问题是,当我使用spring时,第二个选项是,我只想使用jndi获取PU,并使用带有unitName的@PersistenceContext,但spring找不到is并对此进行投诉。这是我用来测试的简单代码,我在persistence.xml中声明了两个PU,分别是pu1和pu2,都是JTA和useJNDI数据源。