新聞中心
Hibernate Lazy采用CGLIB,可以對類進行代理,用在:

贛縣ssl適用于網(wǎng)站、小程序/APP、API接口等需要進行數(shù)據(jù)傳輸應(yīng)用場景,ssl證書未來市場廣闊!成為創(chuàng)新互聯(lián)的ssl證書銷售渠道,可以享受市場價格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:18982081108(備注:SSL證書合作)期待與您的合作!
Class: 可以取值true,false,默認true
Property: 可以取值true,false,需要類增強工具
集合:true/false/extra
one-to-one,many-to-one:取false,proxy/noproxy
Hibernate lazy概念:只有真正使用該對象時,才會創(chuàng)建,對于Hibernate來說,只有真正使用時才會發(fā)出sql。
測試類Hibernate Lazy:查id不發(fā)sql,因為你傳的就是主鍵,查別的屬性會發(fā)sql,Hibernate Lazy有效期必須是session在open時才可以,解決方式是使用openSessionInview。
測試集合Hibernate Lazy:get集合時不會發(fā)sql,迭代會發(fā)sql,查個數(shù)的時候會把整個集合查出來,這樣的話對效率有影響。
把class的lazy設(shè)置成false時,再load類時會把普通屬性都查出來,但是集合不查。
class標簽上的lazy不會影響到集合上的lazy特性。
class標簽上的lazy特性只對普通屬性起作用。
lazy在集合上用extra在獲取size的時候會發(fā)出count語句,這樣對效率有提升。
在單端關(guān)聯(lián)上lazy默認,和集合一樣,在get時返回代理不發(fā)查詢語句,在使用時發(fā)出sql。
在單端關(guān)聯(lián)上lazy=false,在訪問普通屬性時發(fā)出兩條sql,查詢屬性以及對應(yīng)的關(guān)聯(lián)對象。
將class標簽上lazy設(shè)置成false,其它默認:不會影響單端關(guān)聯(lián),也不會影響集合。
分享標題:Hibernate學習筆記之Lazy策略
標題網(wǎng)址:http://m.fisionsoft.com.cn/article/cocdosh.html


咨詢
建站咨詢
