国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

java程序中的延時加載異常及解決方案

2019-11-26 15:18:34
字體:
來源:轉載
供稿:網友

所謂延時加載就是懶加載(lazy),延遲加載。

什么時候用懶加載呢,我只能回答要用懶加載的時候就用懶加載。

至于為什么要用懶加載呢,就是當我們要訪問的數據量過大時,明顯用緩存不太合適,因為內存容量有限 ,為了減少并發量,減少系統資源的消耗,

我們讓數據在需要的時候才進行加載,這時我們就用到了懶加載。懶加載的異常有很多種,你指的是不是session已經關閉的異常?因為那個初學者最容易遇到情況是當你加載出一個一對多關系的一這端的對象,然后在出了事務之后的地方,比如頁面上,還想再獲取多端對象里面的除了id以外的屬性的時候,就會跑出這個異常。

我舉個例子,你有一個 Grade 對象關聯了 很多 Student 對象,并且用的是懶加載

你在service里面通過數據庫查詢獲得了一個 Grade對象,這個對象里面有一個Set<Student> students 集合,但是你并沒有對這個對象做進一步的處理(比如 intialize之類的操作讓懶加載的代理對象真正去實例化)
然后你到了頁面的展示的時候,去遍歷 students 這個集合,并且你試圖在頁面上顯示每個 student 的 name 屬性(這個屬性不是studentId) 這個時候就會拋出session已經關閉的異常

在SSH框架中:

可直接可以使用OpenSessionInViewFilter
在配置文件中配置

復制代碼 代碼如下:

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

以上就是本文的全部內容了,希望小伙伴們能夠喜歡。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 常州市| 子长县| 榕江县| 海南省| 灵寿县| 舒兰市| 铁岭市| 宜川县| 北碚区| 衡阳县| 凤冈县| 宜黄县| 贞丰县| 梨树县| 四会市| 夏河县| 古交市| 凌海市| 正蓝旗| 金昌市| 漳浦县| 尼勒克县| 尚义县| 新田县| 昆山市| 正阳县| 耿马| 天长市| 铜川市| 神木县| 陇南市| 旬邑县| 塔城市| 福建省| 会昌县| 黑山县| 普陀区| 荆门市| 白朗县| 普安县| 呼和浩特市|