1. 程式人生 > >hibernate get和load 方法的區別

hibernate get和load 方法的區別

       區別:

       1、呼叫load 方法時會先查一下session快取,看看該id對應的物件是否存在,不存在則建立代理;如果要查的id物件一定存在,那麼就可以使用load()方法來實現鹽池載入,否則就會丟擲異常。

       2、呼叫get()方法,hibernate會確認一下該id 對應的資料是否存在,首先在session快取中查,然後在二級快取中查詢,還沒有就查資料庫,資料庫沒有該對應的資料就會返回null。

        總的來說,hibernate對於load()方法認為該資料在資料庫是一定存在,可以放心使用代理來延遲載入,如果在使用過程中發現問題,則丟擲異常;而對於get()方法,hibernate一定要獲取到真實的資料,否則返回null。