Hibernate 中延遲載入和立即載入的區別


延遲載入和立即載入是 Hibernate 和 Eclipse Link 等 ORM 框架中的兩種資料載入策略。當一個實體類引用其他實體(例如,員工和電話)時,我們會使用這些資料載入策略。

延遲載入 - 只有在顯式呼叫 getter 方法或 size 方法時才會載入關聯資料。

  • 當使用一對多集合時,使用延遲載入。
  • 當確定不使用相關實體時,使用延遲載入。

立即載入 - 在載入父實體時,同時載入資料。

  • 當關係數量不多時,使用立即載入。因此,立即載入是減少伺服器額外查詢的好方法。
  • 當確定始終需要使用與主實體相關的實體時,使用立即載入。
序號關鍵點延遲載入立即載入
1
獲取策略
在延遲載入中,只有在顯式呼叫 getter 方法或 size 方法時才會載入關聯資料。
在立即載入中,在載入父實體時同時載入資料。
2
ORM 層中的預設策略
多對多和一對多關聯預設使用延遲載入策略。
多對一和一對一關聯預設使用延遲載入策略。
3
載入配置
可以使用註解引數啟用它

fetch = FetchType.LAZY
可以使用註解引數啟用它

fetch = FetchType.EAGER
4
效能
初始載入時間比立即載入小得多
載入太多不必要的資料可能會影響效能

更新於:2019年11月18日

14K+ 次瀏覽

開啟您的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.