前面的文章中说过关于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调用,问题就解决了.