Hibernate中load 與get 的區別

2021-09-01 15:18:10 字數 493 閱讀 4185

首先,當給定id(主鍵)不能查詢到對應資料時,load()方法將返回org.hibernate.objectnotfoundexception異常,而get()方法則返回null.

其次,load()預設是返回乙個**,他並不查詢資料庫,直到真正需要的時候才會去查詢資料庫.比如

book book =(book)session.load(book.class,new integer(1));

book.getid();  //  1 

book.getname(); // 2

**1,是不會查詢資料庫的,

**2,才會真正查詢資料庫,因此,

如果在1,2間插入session.close(),

那麼**2將報錯,提示session is closed.   ;

而get()則直接查詢資料庫.

load()方法非常有用.當你只需要乙個**而不需要馬上呼叫資料庫.當你真正查詢資料庫的時候,你只需要給他關聯乙個session即可

hibernate中get 與 load 區別

session.get 與 session.load區別 1.對於get方法,hibernate會確認一下該id對應的資料是否存在,首先在session快取中查詢,然後在二級快取中查詢,還沒有就查詢資料庫,資料庫中沒有就返回null。2.load方法載入實體物件的時候,根據對映檔案上類級別的lazy...

關於Hibernate中load與get的討論

路人甲 hibernate中有兩個極為相似的方法get 與load 他們都可以通過指定的實體類與id從資料庫中讀取資料,並返回對應的例項,但hibernate不會搞兩個完全一樣的方法的,它們間的不同在於 如果找不到符合條件的紀錄,get 方法將返回null 而load 將會報出objectnotfo...

Hibernate 中get與load的區別

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