1. 程式人生 > >Hibernate中的get方法和load方法有啥區別

Hibernate中的get方法和load方法有啥區別

1.執行get方法會立即載入物件,執行load不會立即載入,返回的是一個代理物件

下圖是兩個方法執行的結果,是相同的,這是因為c物件都被用到了

下圖是執行get方法,沒有用到c物件,但是卻傳送了sql語句

下圖是load方法,沒有用到c物件,也沒有傳送sql語句,懶載入


2.若資料庫沒有對應的記錄,get返回null

load方法丟擲異常,因為代理物件沒有與之對應的記錄



3.load方法可能會丟擲異常,因為採用的是懶載入,如果這個物件用之前關閉了session,那麼就會丟擲這個異常


看到了吧,這就是兩個方法之間最主要的區別