hibernate中load()與get()的區別

load默認爲延遲加載,在用到對象中的其它屬性數據時才查詢數據庫,但是萬一數據庫中不存在該記錄,拋ObjectNotFoundException,即在使用該對象時,數據庫中不存在該數據庫時拋異常,而不是在創建這個對象時。由於session中的緩存對於hibernate來說是個相當廉價的資源,所以load時會先查一下session緩存看看該id對應的對象是否存在,不存在則創建代理(load時候查詢一級緩存,不存在則創建代理)。get()先在以及緩存棧,沒有就去入籍緩存找,又沒有就去數據庫中找,沒有就返回null。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章