我有一个具有多个继承级别的复杂类层次结构,并且我需要使用HQL查询该层次结构中的某些特定类型。
假设我有Cat、Dog和Monkey类,有一个共同的基类Animal。
我如何编写一个查询,只选择其中的一部分,比如说,猫和狗?
我还需要按特定的动物属性进行排序或过滤-因此,假设动物的Sex=为“男性”,并按名称排序。
这个是可能的吗?
发布于 2012-01-18 22:56:03
标准的JPQL函数是TYPE(),正如在其documentation中提到的,Hibernate也支持它。
请参照下面的示例:
select a from Animal a
where type(a) in ('Cat', 'Dog')
    and a.sex = 'Male'
order by a.nameselect a from Animal a
where a.class in ('Cat', 'Dog')
    and a.sex = 'Male'
order by a.namehttps://stackoverflow.com/questions/8911894
复制相似问题