Hibernate檢索策略



Hibernate檢索策略

類級別的檢索策略:

首先要明確的是類級別的懶加載是針對session對象的load方法的,對get方法根本就沒有意義。類級別的檢索策略就是在class上添加lazy屬性即:lazy=true/false

lazy=true,那麼load()方法就可以使用懶加載

lazy=false,那麼load()方法就不能使用懶加載了,只能使用立即檢索。

備註:懶加載要注意一個問題就是謹防出現懶加載異常。

 

Set集合屬性的檢索策略:(lazyfetchbatch-size)

set集合下面也有lazy屬性。(true/false/extra) 通常使用true即默認懶加載開啓

set集合下面的fetch屬性。(join/select/subselect)默認使用的是join

join:表示的是迫切左外連接(:使用左外鏈接進行查詢且把集合屬性進 行初始化)

select:表示自己手寫sql外連接之類的

subselect:表示使用子查詢(挺好的)作爲 where 子句的 in 的條件出現 , 子查詢查詢所有 的一端的 ID

set集合下面的batch-size:   作用一次初始化 的這一段代理對象的個數

 

舉例:Student<——>Teacher雙向關聯

teacher下就有有一個set集合屬性,如果lazy設置爲true表示在檢索teacher的時候它會使用懶加載機制(即不會立即把set集合下面的學生屬性給查出來),犯之亦然。

 

 

使用檢索策略的宗旨

不浪費內存(:只拿我們想要的數據)和提高查詢效率(:儘量少發HQL語句)

 

 

懶加載機制就是爲我們實現這個宗旨的手段和策略。

 

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章