Hibernate/JPA:是否可以在单个查询中检索异构实体?

Mr.*_*art 3 java orm persistence hibernate jpa

我有2个实体:EntityA和EntityB.

它们是无关的,我不能将它们放在继承树中,因为某些限制超出了本问题的范围.

但是我需要在同一个JPQL或HQL查询中获得包含两个实体的所有实例的混合List.这可能是JPA甚至直接使用Hibernate吗?

我需要这样的东西:

FROM EntityA WHERE fieldA=1
UNION
FROM EntityB WHERE fieldB="aa"
Run Code Online (Sandbox Code Playgroud)

任何提示?

Mr.*_*art 5

好吧,我终于明白了.

它应该使实体实现一个通用接口(甚至不需要在Hibernate上声明这个接口).

然后,可以完成这样的查询:

FROM my.package.CommonInterface obj
WHERE obj IN (FROM EntityA WHERE fieldA=1) OR
      obj IN (FROM EntityB WHERE fieldB='a')
Run Code Online (Sandbox Code Playgroud)

这样,你检索一个List<CommonInterface>.

问题解决了.