Hibernate中的get與load有什麼區別

2021-06-20 15:56:48 字數 516 閱讀 8961

學校學習版:

1、get是立即載入,load是延遲載入;

2、查詢不到資料的時候,get返回null,load拋異常;

3、get預設立即載入(返回非**物件),load預設是延遲載入(返回**物件);

4、在hibernate實體對映檔案中可修改lazy屬性的值來改變load方法的載入方式(lazy=「false」關閉延遲),對get無效;

5、**物件:只有oid(物件標示符)屬性有值,第一次訪問非oid屬性時會訪問資料庫載入其他屬性,如果此時session已關閉,則會報錯。

大神版本:

1、找不到符合條件的資料,get()方法將返回null。load()將會報出objectnotfoundecception。

2、get()方法直接返回實體類。load()方法可以返回實體的**類例項。

3、get()方法只在內部快取中進行查詢。load()方法可以利用二級快取和內部快取的現有資料。

4、get方式馬上發出sql。load在預設情況下支援延遲載入(lazy)

Hibernate 中get與load的區別

hibernate中用於獲取資料的方法被有意識的分成2種分類 1.立刻載入方法 get list 2.延遲載入方法 load iterate select id from 表 where 條件 n a 所謂的 立刻載入 就是首先在session快取中查詢,然後在二級快取中查詢,還沒有就查詢資料庫,數...

Hibernate中load 與get 的區別

首先,當給定id 主鍵 不能查詢到對應資料時,load 方法將返回org.hibernate.objectnotfoundexception異常,而get 方法則返回null.其次,load 預設是返回乙個 他並不查詢資料庫,直到真正需要的時候才會去查詢資料庫.比如 book book book s...

hibernate中get 與load 的區別

1.從返回結果上對比 load方式檢索不到的話會丟擲org.hibernate.objectnotfoundexception異常 get方法檢索不到的話會返回null 2.從檢索執行機制上對比 get方法和find方法都是直接從資料庫中檢索 而load方法的執行則比較複雜 首先查詢session的...