程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> spring+hibernate避免延遲加載異常

spring+hibernate避免延遲加載異常

編輯:關於JAVA

在hibernate中,延遲加載是1個非常大的優點,但有時候卻給我們帶來一些小麻煩,在後台查詢結束後,session已經關閉,但在前台顯示的時候,如果存在關聯關系就會產生延遲加載異常。

解決辦法是客戶端每次請求就分配1個session,將請求結果返回給客戶端,並完成展現後關閉session。

實現這個功能非常簡單,在web.xml中加入以下配置

<filter>
   <filter-name>hibernateFilter</filter-name>
       <filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter </filter-class>
   <init-param>
     <param-name>singleSession</param-name>
     <param-value>true</param-value>
   </init-param>
</filter>
<filter-mapping>
   <filter-name>hibernateFilter</filter-name>
   <url-pattern>*.do</url-pattern>
 </filter-mapping>

使用spring提供這個過濾器就可以實現session的集中管理了,所有以.do結尾的請求都自動分配了1個session,並且在這個請求過程中都使用這個session.

來自:http://springking.iteye.com/blog/198009

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved