日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

解决hibernate中的懒加载(延迟加载)问题

發(fā)布時間:2023/12/2 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 解决hibernate中的懒加载(延迟加载)问题 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

解決hibernate中的懶加載(延遲加載)問題

  我們在開發(fā)的時候經常會遇到延遲加載問題,在實體映射時,多對一和多對多中,多的一樣的屬性默認是lazy="true"(即,默認是延遲加載),

如:<many-to-one name="parent" class="Department" column="parentId"?lazy="true"/>

延遲加載表現(xiàn)在:比如:我們要查詢id為2的部門數(shù)據(jù),但是有許多用戶數(shù)據(jù)的部門外鍵是id為2,我們在查詢的時候,由于默認lazy="true"(懶加載),所以是不會查詢部門外鍵為2的用戶數(shù)據(jù)的,但是我們在一次session中,不僅不要部門數(shù)據(jù),而且還有可能需要該部門對應的用戶數(shù)據(jù),由于默認設置為lazy="true",所以我們在一次session中是獲取不到該用戶數(shù)據(jù)了。

解決方法一:設置lazy="false"。該方法有很到缺點,效率極低,我們將所有相關聯(lián)的數(shù)據(jù)都查詢了,頻繁的查詢降低了效率!!不建議采用

  方法二:使用OpenSessionInViewFilter攔截器,在web.xml中配置該攔截器

  <filter>
??    <filter-name>OpenSessionInViewFilter</filter-name>
??    <filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class>
?  </filter>
??? <filter-mapping>
??    <filter-name>OpenSessionInViewFilter</filter-name>
?    ?<url-pattern>*.do</url-pattern>
?? </filter-mapping>

    該方法原理,使用該攔截器,將session一直開啟,不關閉,這時即使還是懶加載,但是session沒有關閉,依然可以使用session查詢相關數(shù)據(jù),

  ???? 優(yōu)點:只需要加載自己想要的數(shù)據(jù),缺點:session一直在開啟,不安全

轉載于:https://www.cnblogs.com/w1217/p/5500300.html

總結

以上是生活随笔為你收集整理的解决hibernate中的懒加载(延迟加载)问题的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。