解决办法是在close session之前,调用Hibernate.initialize(user.getPosts()),告诉系统,user.getPosts()是需要lazy laoding的。但是这样做会破坏HibernateSession类的封装,郁闷。
后来采用所谓的OpenSessionInView模式,把session的周期交给servlet filter来管理,每当有request进来,就打开一个session,response结束之后再关闭它,这样可以让session存在于整个请求周期中。但是在实际操作过程中,发现一下问题:
Lazy laoding应该是两条select构成的,但是在使用了OpenSessionInView模式后,系统执行了一条select,session就被关闭了。相同的代码,放到普通环境中,就执行正常,目前这个问题已经在java eye挂了很久,无人解答。望高人指点。
上一页 [1] [2]
Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved. 闵涛 E_mail:admin@mintao.net(欢迎提供学习资源)
鄂公网安备 42011102001154号
站长:MinTao ICP备案号:鄂ICP备11006601号-18