当使用Hibernate 5查询执行join fetch来加载惰性关联时,返回的结果列表可能包含重复的实体。Hibernate支持HINT_PASS_DISTINCT_THROUGH等提示,以避免在结果SQL查询中使用DISTINCT,并有效地过滤掉结果列表中的重复项。
在使用JPA Criteria API时,消除这种重复的最佳实践方法是什么?
请注意以下事项:
- 支持CriteriaQuery#distinct(布尔值),但它会将DISTINCT关键字添加到SQL查询
- 以下是解释差异的链接:https://hibernate.atlassian.net/browse/HHH-10965
1条答案
按热度按时间qlfbtfca1#
javax.persistence.Query#setHint
或javax.persistence.TypedQuery#setHint
似乎是使用Criteria API提供此类提示的最常用方法。