在Hibernate 5之前,可以使用DISTINCT_ROOT_ENTITY字段来确保结果的每一行都是根实体的不同实例。例如:
criteria.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY);
但是在Hibernate 5 CriteriaQuery中,无法像这样使用它。是否有替代品?
现在我在Hibernate 5中使用distinct()方法:
criteriaQuery.distinct(true);
它提供相同的行为吗?如果不是我该怎么用?
Hibernate已弃用setResultTransformer
,但未提供其他方法-请参见https://discourse.hibernate.org/t/hibernate-resulttransformer-is-deprecated-what-to-use-instead/232/5
因此,如果您需要使用setResultTransformer
,则需要使用休眠Query
,直到休眠提供替换。