【问题标题】:How can I access an entity manager without providing unit name in @PersistenceContext?如何在 @PersistenceContext 中不提供单位名称的情况下访问实体管理器?
【发布时间】:2020-03-18 16:47:26
【问题描述】:

我已经定义了多个具有多个实体管理器工厂和多个事务管理器的持久性单元。 我知道我可以通过像这样向持久性上下文提供单元名称来访问相应的实体管理器。

@PersistenceContext(unitName="PU1")
protected transient EntityManager entityManager;

我想知道是否有一种方法可以访问默认的持久性单元。

@PersistenceContext
protected transient EntityManager entityManager;

我希望这个实体管理器默认选择我的持久性单元“PU1”。

在定义我的 PersistenceUnitManager 时,我将 defaultDataSource 定义为我想要的,但它没有帮助。

任何建议将不胜感激。

谢谢。

【问题讨论】:

    标签: java spring hibernate jpa


    【解决方案1】:

    JPA 不知道要使用哪个持久化单元,尝试为每个持久化单元创建一个 persistence.xml 并选择在应用程序上下文中使用哪一个 试试这个:

    <bean id="persistenceUnitManager"
        class="org.springframework.orm.jpa.persistenceunit.DefaultPersistenceUnitManager">
        <property name="persistenceXmlLocations">
            <list>
                <value>classpath*:META-INF/persistencePU1.xml</value>
            </list>
        </property>
    </bean>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-30
      • 1970-01-01
      • 1970-01-01
      • 2018-07-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多