get 與load 的區別

2021-06-07 03:36:25 字數 585 閱讀 7130

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快取 二級快取...