2011-09-17 55 views
0

我只想問一下,如何證明hibernate正在做延遲加載。 我有這樣的代碼:你能證明Hibernate懶惰加載?

enter image description here

我嘗試在休眠(JPA),使用此代碼測試延遲加載:

enter image description here

其實,我不慣於加載「alamat」屬性,因爲這是一個TEXT。但是,當我嘗試調試代碼,我得到的輸出軌跡是這樣的:

enter image description here

休眠還是選擇alamat列,並在調試veriable,我發現,Hibernate是真的負荷alamat柱:

enter image description here

回答

3

Hibernate的手動調:

使財產水平延遲抓取,你的類必須 儀表:將字節碼添加到原始類中以啓用此類功能,請參閱Hibernate參考文檔。如果 您的課程沒有安裝,則屬性級懶惰加載爲 將被忽略。

如何實現這一點在本手冊的chapter 20.1.8. Using lazy property fetching中進行了說明。它需要一個特殊的構建過程。

1

您必須啓用字節碼測試激活延遲加載特性。如果你沒有啓用字節碼測試,Hibernate會忽略有關延遲加載的所有屬性(see the docs