有没有一种方法可以在HQL中创建一个Distinct查询。通过使用“ distinct”关键字或其他某种方法。我不确定distinct是否是HQL的有效键,但是我正在寻找与SQL关键字“ distinct”等效的HQL。
3 回答
慕村225694
TA贡献1880条经验 获得超4个赞
值得注意的是,distinctHQL中的关键字不会直接映射到distinctSQL中的关键字。
如果distinct在HQL中使用关键字,则有时Hibernate将使用distinctSQL关键字,但是在某些情况下,它将使用结果转换器产生不同的结果。例如,当您使用这样的外部联接时:
select distinct o from Order o left join fetch o.lineItems
在这种情况下,不可能在SQL级别上过滤掉重复项,因此Hibernate 在执行SQL查询之后使用a ResultTransformer来过滤重复项。
慕娘9325324
TA贡献1783条经验 获得超4个赞
下次做这样的事情
Criteria crit = (Criteria) session.
createCriteria(SomeClass.class).
setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY);
List claz = crit.list();
添加回答
举报
0/150
提交
取消