2014-10-10 29 views
3

我讀了幾個關於在JPA中將n個持久性單元中的一個設置爲默認值的線程。但是hibernate.default_schema的用法似乎很模糊。如何在JPA(休眠)中將持久性單元標記爲默認值?

但是,我想實現以下。

  • 有一個默認<persistence-unit name="myMainPU"> ... </persistence-unit>
  • 有一個或多個附加<persistence-unit name="auxilliaryPU"> ... </persistence-unit>
  • 我不希望我的註釋注入EntityManagers與name屬性。例如。不像這個@Persistence(unitName="myMainPU")爲默認的持久性單元。應該就是這樣@Persistence
  • 我想用unitName屬性註釋我的輔助PU。例如。 @Persistence(unitName="auxilliaryPU")

如何做到這一點?我使用Hibernate 4+,也可以接受專有解決方案。

謝謝。

回答

2

沒有「默認pu」的默認選項。

你可以做的是使用CDI並決定你將使用哪個PU。我看不到其他方式。

0

如果你使用Spring,嘗試任何其他bean之前添加此:

<bean id="org.springframework.context.annotation.internalPersistenceAnnotationProcessor" class="org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor" 
    depends-on="myDefaultEntityManagerFactory, myAuxiliaryEntityManagerFactory, yetAnotherEntityManagerFactory"> 
    <property name="defaultPersistenceUnitName" value="my-default-PU" /> 
</bean> 
+0

不使用Spring。但是,肯定有人利潤!謝謝。 – feder 2014-10-14 16:03:10