JPA:加入两个持久性单元

时间:2011-10-04 19:24:04

标签: hibernate jpa jpql

我的应用程序中有两个不同的持久性单元。我正在使用JPA 2.0和Hibernate作为我的实体提供者。在我的一个数据库模式中,我有一个表,其中包含一个列,该列与另一个模式中的表具有外键关系。这些表在我的代码中映射为单独的实体,没有任何关系。是否可以构造一个命名查询来连接这两个模式?

1 个答案:

答案 0 :(得分:7)

不,这是不可能的。您有几个选项,并非所有选项对您的案例都有用:

  • 你可以自己加入代码 - 它可能看起来很丑陋和脏,但如果您不想混合两个域,这是可行的方法,如果数据集很小,这是非常可行的。
  • 您可以将权利从一个PU(或架构)移动到另一个
  • 如果数据库支持视图,则可以从其他模式创建表的视图。
  • 您可以将相同的数据表映射两次(每个PU一次) - 这可能会让您头疼缓存。

根据经验,如果模式之间有FK,那么域的划分方式就会出现问题,因为边界不是很正确。