【问题标题】:Querying/Selecting rows from Parent Entity when using Hibernate JOINED inheritence strategy使用 Hibernate JOINED 继承策略时从父实体中查询/选择行
【发布时间】:2020-11-12 18:31:29
【问题描述】:

我知道继承策略有三种类型:SINGLE_TABLE、TABLE_PER_CLASS、JOINED。如果我希望我的底层数据库被规范化,我认为最好的选择是JOINED。但是,让我们考虑一下这个用例:我有一个父实体和一个扩展此父实体的子实体。我使用的继承策略是JOINED。现在,我可以从应用程序的前端添加父实体和子实体。当我从前端搜索以获取所有子实体时,我能够获取所有子实体。现在,当我尝试仅在父实体上进行搜索时,我看到结果集包含所有实体(父 + 子)并且我理解为什么会发生这种情况。我的问题是,当我使用 JOINED 继承 startegy 时,有什么方法可以仅搜索/查询父实体(不包括子实体中的行)?

【问题讨论】:

  • 当您说“B 扩展 A”时,它应该意味着“B 可以在任何需要 A 的地方使用”。这就是继承的全部意义。如果在某些情况下,可以使用 A 而 B 不能,那么继承可能不是建模 A 和 B 之间关系的正确方法

标签: java hibernate


【解决方案1】:

较新版本的 Hibernate 对此进行了优化,但您必须确保您没有选择实体或使用父表的字段。

【讨论】:

    猜你喜欢
    • 2019-12-22
    • 1970-01-01
    • 2021-02-21
    • 2016-11-03
    • 1970-01-01
    • 1970-01-01
    • 2019-02-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多