爲什麼要使用FetchType.LAZY
而不是FetchMode.JOIN
而不是FetchType.EAGER
? FetchType.LAZY
與FetchMode.JOIN
等於Eager模式。這樣對嗎?。爲什麼把Fetchmode.join
意味着如果發生任何惰性化異常,那麼我們可以添加fetchmode=join
?.爲什麼不能直接使用fetchtype.Eager
。那麼使用fetchtype和fetchmode.join()
有什麼好處?爲什麼要用FetchMode.JOIN而不是FetchType.EAGER來使用FetchType.LAZY?
3
A
回答
-1
考慮一個具有薪金睡眠列表(加入)的類Employee。 1 EMployee有超過100個薪金睡眠。
你想擁有所有員工的名單(比如1000)。 假設我們只想顯示員工信息(無薪工作)。 但是當我們用Eager模式加載它時,即使所有的薪水都會加載所有員工。這是內存開銷。
1
對於小結果集的數據模型,FetchType.EAGER沒有很大的延遲和內存佔用與FetchMode.JOIN影響。
對於這需要根據具體的技術和環境因素的最佳效率高容量數據集模型,FetchType.LAZY是更加希望的,該連接表指針保持不變 - 但實際結果集保持需求。
例如:在效率和資源利用率方面,與數據集鍵熱切聯繫的房屋對象與熱切地與電話號碼對象連接的區域碼對象是不同的。
如有必要:
- 使用FetchType.EAGER對於小結果集加入。
- 並使用FetchType.LAZY用於大型結算加入,效率被認爲是必不可少的。
0
隨着取上一個集合或單值關聯映射=「加入」,就將實際避免第二SELECT(因此使得關聯或集合非延遲)從
引用
https://developer.jboss.org/wiki/AShortPrimerOnFetchingStrategies
0
FetchType更適合在實體註釋中使用。大多數時候我會建議你使用lazy
加載。
在這種情況下,如果您需要防止LazyIntializationException
,您可以通過使用FetchMode.JOIN
來請求加載爲eager
的條件。
List cats = sess.createCriteria(Cat.class)
.add(Restrictions.like("name", "Fritz%"))
.setFetchMode("mate", FetchMode.JOIN)
.setFetchMode("kittens", FetchMode.JOIN)
.list();
相關問題
- 1. 休眠標準OneToOne FetchType.Eager FetchMode.Join執行不必要queryes
- 2. 爲什麼JPA的FetchType.LAZY不起作用?
- 3. 爲什麼不FetchType.Lazy工作?
- 4. echo:「爲什麼需要使用\\而不是\來取消/字符?」
- 5. 爲什麼NHibernate忽略FetchMode.Join?
- 6. Javascript爲什麼要使用NodeList而不是使用數組
- 7. 爲什麼要使用Create方法而不是使用「new」?
- 8. 爲什麼要使用WTForms,而不是用HTML發佈
- 9. 爲什麼使用classmethod而不是staticmethod?
- 10. 爲什麼使用iconv_strpos而不是strpos?
- 11. 爲什麼使用registerDefaults:而不是setValue:forKey:?
- 12. 爲什麼使用TagBuilder而不是StringBuilder?
- 13. 爲什麼,而不是使用回調
- 14. 爲什麼使用結構,而不是
- 15. 爲什麼使用StringWriter而不是StringBuffer?
- 16. 爲什麼使用s:Line而不是mx:HRule?
- 17. 爲什麼使用ImageIcon而不是Image?
- 18. 爲什麼使用SQLiteOpenHelper而不是SQLiteDatabase?
- 19. 爲什麼使用MapFragment而不是SupportMapFragment?
- 20. 爲什麼使用FloatBuffer而不是float []?
- 21. 爲什麼使用追加()而不是+
- 22. 爲什麼使用Number.parseInt而不是parseInt()?
- 23. 爲什麼使用JLE而不是JL?
- 24. 爲什麼使用isinstance()而不是type()?
- 25. 爲什麼使用NoSQL而不是RDBMS?
- 26. 爲什麼使用uImage而不是zImage
- 27. 爲什麼使用HTML而不是HAML?
- 28. 爲什麼使用leal而不是incq?
- 29. 爲什麼使用TCPDF而不是mpdf
- 30. 爲什麼使用DataSource而不是XADataSource?
但Fetchmode.Join表示不是懶惰的collection.Is是正確的嗎? – tech2504 2013-04-23 19:09:47