首先,當給定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快取中查詢,然後在二級快取中查詢,還沒有就查詢資料庫,數...