2014-10-10 66 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