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...