load與get的區別
1.如果數據庫沒有匹配的記錄,load()方法可能會拋出無法恢復的異常(unrecoverable exception);get()方法會返回null;2.load可以使用延遲加載;get不可以;
load與get的工作原理:
get方法首先查詢session緩存,沒有的話查詢二級緩存,最后查詢數據庫;
若設置了lazy=true,load方法創建時首先查詢session緩存,沒有就創建代理,實際使用數據時才查詢二級緩存和數據庫;
未設置lazy=true時,與get方法相同;
未設置lazy=true時,與get方法相同;
到底使用誰:如果不確定是否有匹配的行存在,應該使用get方法。
Gavin
posted on 2012-03-13 09:02 GavinMiao 閱讀(278) 評論(0) 編輯 收藏 所屬分類: hibernate