【问题标题】:JPA: Join across two persistence unitsJPA:跨两个持久性单元加入
【发布时间】:2011-11-30 23:11:17
【问题描述】:

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

【问题讨论】:

    标签: hibernate jpa jpql


    【解决方案1】:

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

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

    根据经验,如果您在模式之间有 FK,那么您对域的划分方式就会有问题,因为边界并不完全正确。

    【讨论】:

      猜你喜欢
      • 2013-02-15
      • 2014-06-25
      • 2021-02-17
      • 2013-08-24
      • 1970-01-01
      • 1970-01-01
      • 2013-04-18
      • 2013-09-06
      • 2014-03-28
      相关资源
      最近更新 更多