Posted on 2008-07-09 10:42
追風(fēng)舞者 閱讀(134)
評(píng)論(0) 編輯 收藏 所屬分類:
Hibernate
在hibernate中,延遲加載是1個(gè)非常大的優(yōu)點(diǎn),但有時(shí)候卻給我們帶來一些小麻煩,在后臺(tái)查詢結(jié)束后,session已經(jīng)關(guān)閉,但在前臺(tái)顯示的時(shí)候,如果存在關(guān)聯(lián)關(guān)系就會(huì)產(chǎn)生延遲加載異常。
解決辦法是客戶端每次請(qǐng)求就分配1個(gè)session,將請(qǐng)求結(jié)果返回給客戶端,并完成展現(xiàn)后關(guān)閉session。
實(shí)現(xiàn)這個(gè)功能非常簡(jiǎn)單,在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提供這個(gè)過濾器就可以實(shí)現(xiàn)session的集中管理了,所有以.do結(jié)尾的請(qǐng)求都自動(dòng)分配了1個(gè)session,并且在這個(gè)請(qǐng)求過程中都使用這個(gè)session.
來自:http://springking.javaeye.com/
文章來源:
http://www.tkk7.com/beansoft/archive/2008/06/19/209283.html