為什麼需要檢索策略:
1.減少記憶體的消耗:當hibernate從資料庫載入乙個物件時,如果同時載入了所有關聯的物件,而程式僅僅需要訪問最初載入
的物件,那麼就白白浪費了記憶體。
2.更高效的查詢資料:傳送盡可能少的sql語句。
立即檢索和延遲檢索(使用關聯物件的屬性時檢索,需要注意懶載入異常), 通過
的lazy屬性進行設定。
該屬性的設定只對load方法有效。對
get,
hql,
qbc均無效。
即對元素的屬性設定。
-lazy:決定集合被初始化的時機。
1.true 懶載入(延遲檢索)
2.false 直接載入 (立即檢索)
3.extra 增強懶載入
(盡可能延遲初始化的時機)
-fetch:決定集合的查詢語句的形式。
1.select 預設形式
2.subselect 子查詢形式(忽略
batch-size)
,子查詢查詢所有
1一端的
id,與
hql聯用
3.join 左外連線形式
(只適用於
get/load,
忽略lazy
,被hql忽略)
-batch-size:
用於批量檢索數量,即一次檢索幾個set,與
hql聯用
,節點也有
lazy
,fetch
屬性:
-lazy:
1.proxy 預設,延遲檢索
2.false 立即檢索
3.no-proxy 無**延遲檢索
-fetch:
1.select 預設
2.join 左外連線(只適用於
get/load,
忽略lazy)
-batch-size: 需要在一的一端的
class
節點設定,一次初始化幾個一的一端的物件,與
hql聯用
Hibernate 檢索策略
在預設情況下,當hibernate從資料庫中載入物件時,會同時載入所有關聯的物件.但實際應用中可能不需要使用其關聯的物件,這樣就可能通過設定hibernate的檢索策略,來優化檢索效能.hiberante提供了3種檢索策略 1 立即檢索 2 延遲檢索 3 迫切左外連線檢索 下面先從概念上去理解,先在...
Hibernate檢索策略
預設的檢索策略是立即檢索。在hibernate對映檔案中,通過在上配置 lazy屬性來確定檢索策略。對於session的檢索方式,類級別檢索策略僅適用於load方法 也就說,對於get qurey檢索,持久化物件都會被立即載入而不管lazy是false還是true.一般來說,我們檢索物件就是要訪問它...
hibernate 檢索策略
本文主要是學習hibernate的檢索策略 1 類級別的檢索策略有兩種一種是立即檢索,一種是延遲檢索,僅影響load操作 立即檢索,是類的預設檢索方式,或者設定了lazy false 也是立即檢索方式,即執行load操作之後會立馬返回相應的資料。延遲檢索,當類設定lazy true 時,hibern...