在JPA中,我使用setResultTransformer()
来过滤重复的数据,因为我已经阅读过在查询中使用distinct
,返回大数据集会降低性能。但我的朋友说,setResultTransformer()
将采取java堆内存的情况下,大数据集,这将导致outofmemory异常。这是正确的吗?JPA中的Distinct vs setResultTransformer()
回答
setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY)
当然会占用大量的内存。并且它不会比使用HQL或SQL的distinct
更好。
原因是Hibernate会加载数据库中的所有数据并使用CriteriaSpecification.DISTINCT_ROOT_ENTITY
在内存中处理它。数据库可以使用一些优化来做distinct
本身。
好的感谢评论。如果你有任何证据,也可以发布。我认为hibernate足够聪明,能够以有效的方式使用会话或其他任何东西来处理内存利用率。 –
@viveksharma为了处理数据,Hibernate需要通过网络检索一个例子。你也可以使用变压器。没关系。但认为它有更多的表现是错误的。 –
好的,谢谢...... –
- 1. 选择DISTINCT JPA
- 2. JPA Select Count Distinct
- 3. select vs distinct vs uniq?
- 4. 在JPA中使用DISTINCT
- 5. Rails:uniq vs. distinct
- 6. SPARQL DISTINCT vs. REDUCED
- 7. JPA: 'SELECT DISTINCT' 与BLOB列
- 8. JPA vs ORM vs Hibernate?
- 9. distincto vs. fd/distinct in core.logic
- 10. JPA JoinColumn VS的mappedBy
- 11. JPA OneToMany:List vs Set
- 12. JPA @Converter vs @ReadTransformer/@WriteTransformer
- 13. jdbc vs jpa执行
- 14. Hibernate session.persist()vs JPA entityManager.persist()
- 15. 如何在Hibernate 5.2之后使用`setResultTransformer`?
- 16. 在各个列上的JPA中使用DISTINCT关键字
- 17. 在JPA 2标准API中选择DISTINCT + ORDER BY API
- 18. JPA Eclipselink NamedQuery vs查询COUNT
- 19. Spring JPA Hibernate Vs Spring Hibernate
- 20. JPA VS JDBC - 2个问题
- 21. JPA实体和/ vs DTOs
- 22. Java Persistence/JPA:@Column vs @Basic
- 23. 如何在使用JPA 2时指定DISTINCT?
- 24. 是否可以将COUNT与DISTINCT JPA投影一起使用?
- 25. Spring Data JPA Distinct - 从单个列返回结果
- 26. JPA本地查询生成与COUNT(DISTINCT OBJ)
- 27. PostgreSQL:SELECT DISTINCT与SELECT DISTINCT ON(ID)
- 28. pyodbc parameterised sql result count distinct distinct
- 29. JPA命名查询vs Criteria API?
- 30. oauth2令牌存储冲突(JPA vs inMemory)
您使用哪种结果转换器? –
typedQuery.unwrap(org.hibernate.Query.class).setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY); –