我有一个带有两个具体后代的抽象实体。继承类型是单表。我需要从 db 中找到一些后代。作为搜索条件,我使用与孩子相关的字段,即父类没有该属性。因此,我需要父实体的实例列表。
这是一个伪代码:
abstract class ParentEntity {
}
class ChildA extends ParentEntity {
int a;
}
class ChildB extends ParentEntity {
String b;
}
查询应该是这样的:
select ParentEntity from ChildA childA where childA.a=5 UNION select ParentEntity from ChildB childB where childB.b="hello"
现在我的问题是:我可以在一个查询中获得我需要的实体,还是在带有一些子查询的列表中,或者通过使用 UNION(据我了解它在 JPA 中不受广泛支持)?或者我有两个运行两个单独的查询,将它们的结果合并并手动排序?
JPA,休眠,PostgreSQL。