JAVA项目开发笔记(9):使用spring管理 hibernate 的 session同时实现自已管理session(如:Birt)

前面的文章中说过关于hibernate的session问题,我项目中用的是在web.xml中配置OpenSessionInViewFilter这样本来没什么问题,只一个pojo类在两个请求中传递后的延迟加载会遇到no session or session was closed错误,这种没办法的我只好重新在session中取得pojo类或关闭可关闭的延迟加载,总算也解决了,但最近又遇到问题, 我的Birt报表的文章中提到过我是通过birt的脚本取得spring的Bean来取得报表数据的,但是在birt的脚本调用spring方法不会触发OpenSessionInViewFilter的,所以在一个方法中调pojo的延迟加载都会报no session or session was closed错误,后来我就去查OpenSessionInViewFilter源码,发现它是建一个session后绑定到线程中的,所以我就照它的代码加了一个方法新建一个session并绑定到线程中去,再加一个方法解绑并结束session分别在birt报表的onOpen和onClose调用,问题就解决了.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值