load()載入的方法:
cap cap =(cap)session.load(cap.class,capid);
如果capid為null,則該方法會返回乙個**物件,但是如果後面呼叫cap.getcapname()則會丟擲異常!
load可以延遲載入。使用load載入完後會在hibernate的一級快取中存放乙個map物件,該map的key就是capid的值,
當getid()時便會去一級快取中去map的key的值,而不會去執行資料庫查詢,所以不會報錯。
get()載入方法:
cap cap =(cap)session.get(cap.class,capid);
如果capid為null,則該方法會null. get()不支援延遲載入。
這邊所謂load可以延遲載入的意思就是指:
cap cap =(cap)session.load(cap.class,capid);這在執行時不會立即去查詢資料庫,只有用到cap時才會去執行資料庫查詢。
get()不支援延遲載入:
cap cap =(cap)session.get(cap.class,capid);在執行時會立即去查詢資料庫
get 與 load 的區別
1 如果沒有找到符合條件的資料get方法返回的是null,而load方法會丟擲乙個objectnotfoundexpection的異常。2 load方法可以返回實體的 類例項,而get方法直接返回實體。3 load方法可以充分在一級快取和二級快取中查詢現有的資料,而get方法則只在一級快取查詢,如果...
hibernate中get 與 load 區別
session.get 與 session.load區別 1.對於get方法,hibernate會確認一下該id對應的資料是否存在,首先在session快取中查詢,然後在二級快取中查詢,還沒有就查詢資料庫,資料庫中沒有就返回null。2.load方法載入實體物件的時候,根據對映檔案上類級別的lazy...
get 和load 的區別
get 方法直接返回實體類,如果查不到資料則返回null。load 會返回乙個實體 物件 當前這個物件可以自動轉化為實體物件 但當 物件被呼叫時,如果資料不存在,則會丟擲 org.hibernate.objectnotfoundexception異常 load 先到快取 session快取 二級快取...