我有以下 spring xml 配置:
<bean id="entityManagerFactory1" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
<property name="persistenceXmlLocation" value="classpath:/astra_persistence.xml" />
<property name="persistenceUnitName" value="myPersistenceUnit1" />
<property name="dataSource" ref="astraDataSource" />
<property name="jpaVendorAdapter" ref="astraJpaVendorAdapter" />
<property name="jpaDialect" ref="jpaDialect" />
</bean>
<bean id="entityManagerFactory2" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean" primary="true">
<property name="persistenceXmlLocation" value="classpath:/META-INF/persistence.xml" />
<property name="persistenceUnitName" value="myPersistenceUnit2" />
<property name="dataSource" ref="myDataSource" />
<property name="jpaVendorAdapter" ref="jpaVendorAdapter" />
<property name="jpaDialect" ref="jpaDialect" />
<property name="jpaProperties">
<props>
<prop key="hibernate.physical_naming_strategy">com.mypackage.domain.jpa.model.naming.ImprovedPhysicalNamingStrategy</prop>
<prop key="hibernate.implicit_naming_strategy">org.hibernate.boot.model.naming.ImplicitNamingStrategyJpaCompliantImpl</prop>
</props>
</property>
<property name="packagesToScan"
value="com.mypackage" />
</bean>
在我的 DAO 中:
@PersistenceContext(unitName = "myPersistenceUnit2")
protected EntityManager myEntityManager;
由于以下错误,我无法设置它:
NoUniqueBeanDefinitionException: No qualifying bean of type [javax.persistence.EntityManagerFactory] is defined
我尝试过:
- xml 配置中的primary="true"- 不走运
- unitName 而不是 @PersistenceContext 中的 name - 运气不好
如何解决?
最佳答案
尝试使用适当的名称来验证您的 Em
import org.springframework.beans.factory.annotation.Qualifier;
@Qualifier("entityManagerFactory2")
@PersistenceContext(unitName = "myPersistenceUnit2")
protected EntityManager myEntityManager;
关于java spring 4 hibernate 5 两个实体管理器上下文错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36978321/