1. 程式人生 > >懶加載(延遲加載)

懶加載(延遲加載)

進行 col 默認 sql mil 關聯關系 b- 錯誤 理解

懶加載FatchType.LAZY也稱為延遲加載,是Hibernate3關聯關系對象默認的加載方式,所謂懶加載就是當在真正需要數據的時候,才真正執行數據加載操作。簡單理解為,只有在使用的時候,才會發出sql語句進行查詢。
懶加載的有效期是在session打開的情況下,當session關閉後,會報異常。當調用load方法加載對象時,返回代理對象,等到真正用到對象的內容時才發出sql語句。
急加載FatchType.EAGER 也成為立即加載,時立即執行sql語句。
在session沒有關閉的之前,如果訪問除id外的其他屬性才會發sql語句去查詢,我們經常犯的一個錯誤就是在當前session關閉以後訪問由load()加載的對象的非id屬性,
此時Hibernate嘗試通過當前session發sql查詢,但發現session已經關閉,這樣就會發出no session的異常 。

懶加載(延遲加載)