【问题标题】:Spring JpaRepositories with multiple persistence units具有多个持久性单元的 Spring JpaRepositories
【发布时间】:2014-01-14 00:00:38
【问题描述】:

我有一个多模块 Spring 应用程序,其中每个模块 (jar) 都包含自己的 persistence.xml。

在罐子 1 中

Persistence.xml

<persistence-unit name="pu_one" transaction-type="RESOURCE_LOCAL">
    ...
</persistence-unit>

EntityOne.java

@Entity
public class EntityOne {
}

EntityOneRepository.class

interface EntityOneRepository extends JpaRepository<EntityOne, Long> {

} 

在罐子 2 中: 持久性.xml

<persistence-unit name="pu_two" transaction-type="RESOURCE_LOCAL">
    ...
</persistence-unit>

EntityTwo.java

@Entity
public class EntityTwo {
}

EntityTwoRepository.class

interface EntityTwoRepository extends JpaRepository<EntityTwo, Long> {

} 

然后我使用 org.springframework.orm.jpa.persistenceunit.DefaultPersistenceUnitManager 将它们放在一起。

我的问题与 JpaRepositories 相关,因为它们使用默认持久性单元,如 DefaultPersistenceUnitManager 的配置中所定义。

问题。如何指示每个存储库使用正确的持久性单元?

【问题讨论】:

    标签: spring spring-data spring-data-jpa


    【解决方案1】:

    我最终使用了

    org.springframework.data.jpa.support.MergingPersistenceUnitManager
    

    而不是

    org.springframework.orm.jpa.persistenceunit.DefaultPersistenceUnitManager
    

    然后将不同 jar 中的所有实体合并到一个持久单元中。诀窍是将所有持久性单元命名为相同。

    但是我更愿意通知每个存储库要使用什么持久性单元,这目前有效。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-04-19
      • 2016-05-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-18
      • 1970-01-01
      相关资源
      最近更新 更多