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

有没有一种方法可以在HQL中创建一个Distinct查询。通过使用“ distinct”关键字或其他某种方法。我不确定distinct是否是HQL的有效键,但是我正在寻找与SQL关键字“ distinct”等效的HQL。



守着一只汪
浏览 837回答 3
3回答

慕村225694

值得注意的是,distinctHQL中的关键字不会直接映射到distinctSQL中的关键字。如果distinct在HQL中使用关键字,则有时Hibernate将使用distinctSQL关键字,但是在某些情况下,它将使用结果转换器产生不同的结果。例如,当您使用这样的外部联接时:select distinct o from Order o left join fetch o.lineItems在这种情况下,不可能在SQL级别上过滤掉重复项,因此Hibernate 在执行SQL查询之后使用a ResultTransformer来过滤重复项。

慕娘9325324

下次做这样的事情 Criteria crit = (Criteria) session.                  createCriteria(SomeClass.class).                  setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY); List claz = crit.list();
打开App,查看更多内容
随时随地看视频慕课网APP