Posted on 2008-07-09 10:42
追風舞者 閱讀(134)
評論(0) 編輯 收藏 所屬分類:
Hibernate
在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.javaeye.com/
文章來源:
http://www.tkk7.com/beansoft/archive/2008/06/19/209283.html