使用Hibernate JOINED继承策略时从父实体查询/选择行



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

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

最新更新