在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); –