Hibernate的抓取策略與Lazy筆記

2021-09-01 16:31:13 字數 484 閱讀 9658

[b]遇到的需求:[/b]

在spring啟動時,需要載入resource下的roles(兩者為多對多)。

[b]遇到的問題:[/b]

由於需要在程式的其他地方做多對多的criteria分頁查詢,如果設定resource下的roles為fetch=fetchtype.meager 那麼會出現n+1的問題。但如果設定fetch=fetchtype.lazy 那麼會出現在spring載入時出現hibernate no session found異常(因為查詢已經結束,session被關閉)。

[b]解決的方法:[/b]

利用fetchmode.join單獨寫乙個查詢方法用於查詢roles,**如下:

public setgetroles(string resid)

[b]注意事項:[/b]

需要注意查詢的事務是propagation="required"

hibernate 抓取策略

1.單端 對端是one,即many2one 1.1 在用many2one時,fetch可以採取select或者join.用select時,會另發一條語句載入關聯物件。用join時,用一條語句就查上來,相當於資料庫裡面的連線,內連線外連線取決於外來鍵是否允許為空。注意 這個規則僅適用於get或者loa...

Hibernate抓取策略

抓取策略指的是我們在獲取資料時,告訴hibernate以何種sql的方式去獲取,hibernate有三種抓取方式可供選擇,分別是select join subselect 該屬性只能在集合標籤和關聯關係標籤上使用。xml version 1.0 encoding utf 8 cn.hibernate...

hibernate 抓取策略

抓取策略 fetching strategy 抓取策略 fetching strategy 是指 當應用程式需要在 hibernate實體物件圖的 關聯關係間進行導航的時候,hibernate如何獲取關聯物件的策略。抓取策略可以在o r對映的元資料中宣告,也可以在特定的hql 或條件查詢 crite...