openSessionInView

本文介绍Hibernate中使用OpenSessionInView实现延迟加载的方法。通过配置过滤器OpenSessionInViewFilter,使得Session对象由当前线程管理,从而实现请求处理过程中Session的自动开启与关闭。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

关于hibernate延迟加载, 报no session异常:

1)简述:OpenSessionInView翻译过来就是:在表现层打开Session。

2)作用:

将Session对象的创建交给当前线程管理,当前线程维护着一个“Session的连接池”。每当用户发送一个请求,filter在接收到用户的请求Request后,就会将Session对象绑

定到该请求上。

       当请求被处理完毕,返回响应Response时,Response会再次经过filter的处理,Response之前被绑定的Session会被filter回收,然后放入到“Session的连接池”中。

       当下次用户再次发送请求时,仍然重复上述过程。

3)代码:

在web.xml中设置过滤器OpenSessionInViewFilter。

1
2
3
4
5
6
7
8
9
<!-- 配置OpenSessionInView --> 
<filter>
<filter-name>openSessionInView</filter-name>
     <filter- class >org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter- class >
</filter>
<filter-mapping>
<filter-name>openSessionInView</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值