1. Hibernate get方法 html
Hibernate確認該id對應的數據是否存在,首先在session緩存中查找,而後在二級緩存中查找,尚未就查詢數據庫,數據庫中沒有就返回null。 數據庫
2. Hibernate load方法 緩存
加載實體對象的時候,根據映射文件上類級別的lazy屬性的配置(默認爲true),分狀況討論: session
(1)若爲true,則首先在Session緩存中查找,看看該id對應的對象是否存在,不存在則使用延遲加載,返回實體的代理類對象(該代理類爲 實體類的子類,由CGLIB動態生成)。等到具體使用該對象(如在訪問延遲加載對象的具體屬性的時候(getClass,getId,OID除外))的時候,再查詢二級緩存和數據庫,若仍沒發現符合條件的記錄,則會拋出一 個ObjectNotFoundException。 spa
(2)若爲false,與Hibernate get方法查找順序同樣,只是最終若沒發現符合條件的記錄,則會拋出一個ObjectNotFoundException。 .net
詳見:http://www.zgxue.com/163/1633214.html