我有一个多模块Spring应用程序,其中每个模块(jar)都包含自己的persistence.xml。
在jar 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> {
} 在jar 2中: persistence.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配置中定义的默认持久性单元。
有个问题。如何指示每个存储库使用正确的持久性单元?
发布于 2014-01-15 08:29:27
我最终使用了
org.springframework.data.jpa.support.MergingPersistenceUnitManager而不是
org.springframework.orm.jpa.persistenceunit.DefaultPersistenceUnitManager然后,不同jars中的所有实体将被合并到一个持久性单元中。技巧是将所有持久性单元命名为相同的名称。
然而,我更愿意通知每个存储库使用哪个持久化单元,这目前是有效的。
https://stackoverflow.com/questions/21103767
复制相似问题