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