1. 程式人生 > >hibernate的get() load() 和find()區別

hibernate的get() load() 和find()區別

如果找不到符合條件的紀錄,get()方法將返回null.
如果找不到符合條件的紀錄,find()方法將返回null.
如果找不到符合 條件的紀錄,load()將會報出ObjectNotFoundEcception.

get()方法會忽略二級快取,若內部快取沒有查詢到會到資料庫中去查詢 .
find()方法會忽略二級快取,若內部快取沒有查詢到會到資料庫中去查詢 .
load()方 法可以充分利用hibernate的內部快取和二級快取中的現有資料 .

get()方法返回真實的實體類 .
find()方法返 回真實的實體類 .
load()方法可以返回實體的代理類 .

load()會因所要查詢的物件類的對映檔案中設定的檢索策略,而實現立即檢索或延遲檢索。
get()方法和find()方法卻不受這種控制,它 們總是會執行立即檢索。