hibernate 檢索策略

2021-06-28 01:43:28 字數 865 閱讀 2762

本文主要是學習hibernate的檢索策略

1、類級別的檢索策略有兩種一種是立即檢索,一種是延遲檢索,僅影響load操作

立即檢索,是類的預設檢索方式,或者設定了lazy=「false」也是立即檢索方式,即執行load操作之後會立馬返回相應的資料。

延遲檢索,當類設定lazy=「true」時,hibernate在執行load操作時不會立馬執行sql,即使時getid也不會執行,只有當獲取非key屬性時才會執行sql

2、檢索策略

1)立即檢索,是預設的檢索方式,即檢索customer時會預設將orders檢索出來。

2)延遲檢索,設定lazy屬性為「true」,檢索customer時不會將orders檢索出來,只是返回orders的集合**類,只有當用到了orders時才會檢索orders物件

3)fetch策略,hibernate3已經使用fetch取代了outer-join的作用,一般的預設情況下fetch=「select」,這樣當獲取customer時,就會有n+1問題,當我們設定fetch=「join」時,則可以避免n+1問題。

4)set元素中batch-size=「3」的作用解釋,當customer一對多關聯orders時,獲取orders將會發出sql語句,預設情況下有多少customer將有多少獲取orders的sql語句,若設定了此屬性,則表示每三個customer執行乙個sql語句,即selete orders where cid in (?,?,?)。

5)當設定fetch為join時,我們需要設定hibernate的屬性max_fetch_depth來控制外連線關聯的層次,如設定depth=1時,order會使用join關聯customer,但是customer不會再使用join來關聯orders,只會單獨使用select獲取orders。

Hibernate 檢索策略

在預設情況下,當hibernate從資料庫中載入物件時,會同時載入所有關聯的物件.但實際應用中可能不需要使用其關聯的物件,這樣就可能通過設定hibernate的檢索策略,來優化檢索效能.hiberante提供了3種檢索策略 1 立即檢索 2 延遲檢索 3 迫切左外連線檢索 下面先從概念上去理解,先在...

Hibernate檢索策略

預設的檢索策略是立即檢索。在hibernate對映檔案中,通過在上配置 lazy屬性來確定檢索策略。對於session的檢索方式,類級別檢索策略僅適用於load方法 也就說,對於get qurey檢索,持久化物件都會被立即載入而不管lazy是false還是true.一般來說,我們檢索物件就是要訪問它...

hibernate 檢索策略

不浪費記憶體 提高查詢效率 lazy false 立即檢索 lazy true 延遲檢索 batch size x 批量預抓取數量設定 lazy true false extra true為延遲檢索 false為立即檢索 extra為增強延遲檢索 例如只使用size 方法,則只會傳送一條count的...