是否可以从父抽象实体中获取所有子实体?

时间:2012-03-02 15:20:10

标签: java spring hibernate hibernate-annotations

我正在试图找出是否可以创建一个方法来获取或查找我所拥有的中央数据库中的所有条目。

我的实体如下:

提名(摘要) - > Type1Nomination,Type2Nomination,Type3Nomination等等。

提名有一个表也映射到DB,并且具有每种类型提名的公共属性/列。其余的是不言自明的。

我看到它的方式,我必须将提名的类型投射到基类?这将在Service类中完成(因为你不能创建一个抽象类的DAO),我是否正确?

1 个答案:

答案 0 :(得分:2)

您可以在JPA / Hibernate和JPA继承中执行此操作。它应该像查询提名实体一样简单。

Select n From Nomination n

应返回抽象提名对象列表。

我见过人们使用类型列和in关键字来获得某些子组,例如

Select n from nomination where n.type in :types 

其中types是“Type1Nomination”“Type2Nomination”的集合,但由于这些是同级查询,因此可能导致一些令人讨厌的LEFT OUTER JOIN查询