懶加載(延遲加載)

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