java spring 4 hibernate 5 两个实体管理器上下文错误

标签 java spring hibernate

我有以下 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

我尝试过:

  1. xml 配置中的primary="true"- 不走运
  2. 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/

相关文章:

java - Spring xml 配置到 java 配置转换器

java - spring - 从类路径加载 GenericXmlApplicationContext

java - OpenShift 云中的 NullPointerException

java - XML/Java : Precise line and character positions whilst parsing tags and attributes?

java - 带有图像背景的 toast

java - PdfCopy 中的 iText mergeFields 创建无效的 pdf

sql - hibernate :模式验证:缺少表

java - 在 Android 中访问资源文件

java - 如何避免每次更改都加载 Spring 上下文?

java - Hibernate 创建不需要的映射表