为了账号安全,请及时绑定邮箱和手机立即绑定

如何在HQL中创建不同的查询

如何在HQL中创建不同的查询

有没有一种方法可以在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来过滤重复项。


查看完整回答
反对 回复 2019-12-27
?
慕娘9325324

TA贡献1783条经验 获得超4个赞

下次做这样的事情


 Criteria crit = (Criteria) session.

                  createCriteria(SomeClass.class).

                  setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY);


 List claz = crit.list();


查看完整回答
反对 回复 2019-12-27
  • 3 回答
  • 0 关注
  • 820 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信