hibernate中懶加載和急加載的區別,以及hibernate中get()方法和load()方法的區別


 
        
 
        

    * 懶加載在加載一個實體的時候,不會馬上從數據庫中加載,即從數據庫中加載到內存。而急加載在加載一個實體時,會立即從數據庫中查詢,與其關聯的類也會被同時查詢。

急加載就會很快,因為在第一次加載的時候,已經幫我們全部加載好了。而懶加載則會相對慢一些,因為在我門需要查詢的時候,它才會執行sql操作。

所以懶加載的優點是占用內存小,執行速度慢;急加載是執行速度快,占用內存高

          hibernate的get()he load()方法在執行的時候又很大的區別,

執行get()方法會把所有的基本數據全部加載,

而load()方法在懶加載中只會加載ID屬性,所有的ID屬性,其他的非ID屬性的操作都不會執行,當我們需要查詢默寫具體的數據是才會真的執行sql操作,因為懶加載的有效期是在一個session中,所以今天我們在關閉了session的情況下會報錯,因為Hibernate嘗試通過當前session發sql查詢,但發現session已經關閉,這樣就會發出no session的異常 。

我們可以吧加載方式變成急加載或者不關閉session。

 




免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM