Hibernate get與load的區別

2021-08-29 16:43:38 字數 586 閱讀 9486

hibernate

中有兩個極為相似的方法get

()與load

(),他們都可以通過指定的實體類與id從資料庫中讀取資料,並返回對應的例項,但hibernate

不會搞兩個完全一樣的方法的,它們間的不同在於:

hibernate

認為該id對應的物件(資料庫記錄)在資料庫中是一定存在的,所以它可以放心的使用,它可以放心的使用**來延遲載入該物件。在用到物件中的其他屬性資料時才查詢資料庫,但是萬一資料庫中不存在該記錄,那沒辦法,只能拋異常,所說的load

方法拋異常是指在使用該物件的資料時,資料庫中不存在該資料時拋異常,而不是在建立這個物件時.

1.如果找不到符合條件的紀錄,get

()方法將返回null.而load

()將會報出objectnotfoundecception.

2.load

()方法可以返回實體的**類例項,而get

()永遠只返回實體類.

3.load

()方法可以充分利用二級快取和內部快取的現有資料,而get

()方法只在內部快取中進行查詢,如沒有發現對應資料將跳過二級快取,直接呼叫sql完成查詢.

Hibernate get與load的區別

這次我們來談一下hibernate3.2 session載入資料時get和load方法的區別 hibernate 3以後的版本就用get 方法取代find 這個方法了 1.對於hibernate get方法,hibernate會確認一下該id對應的資料是否存在,首先在session快取中查詢,然後在...

Hibernate get和load方法區別

get和load方式是根據id取得乙個記錄 下邊詳細說一下get和load的不同,因為有些時候為了對比也會把find加進來。color red b 1.從返回結果上對比 b color load方式檢索不到的話會丟擲org.hibernate.objectnotfoundexception異常 ge...

hibernate get和load方法異同

load和get一共是2個區別 先講第乙個 延遲載入 load是true而get是false 意思就是 load採用的是延遲載入的方式 而get不是,hibernate思想是 既然這個方法支援延遲載入 他就認為這個物件一定在資料庫存在,在你宣告 tfaq tfag2 tfaq sess.load t...