什么是Hibernate中的延遲加載?什么是Java中的延遲加載?我不明白這個過程。任何人都可以幫我理解延遲加載的過程嗎?
3 回答

慕后森
TA貢獻1802條經(jīng)驗 獲得超5個贊
假設您有父母,并且該父母有一個孩子的集合。Hibernate現(xiàn)在可以“延遲加載”子進程,這意味著它在加載父進程時實際上并沒有加載所有子進程。相反,它會在請求時加載它們。你可以明確地請求它,或者這更常見,當你試圖訪問一個孩子時,hibernate會自動加載它們。
延遲加載可以幫助顯著提高性能,因為通常您不需要孩子,因此不會加載它們。
還要注意n + 1問題。當您訪問集合時,Hibernate實際上不會加載所有子節(jié)點。相反,它將單獨加載每個孩子。迭代集合時,會導致查詢每個子集。為了避免這種情況,您可以通過調(diào)用parent.getChildren()。size()來欺騙hibernate同時加載所有子節(jié)點。
添加回答
舉報
0/150
提交
取消