在项目开发中,对于struts的数据读取,当遇到多个表关联的数据读取的时候,精彩会出现session close的错误,一般的解决方案是将hib的延迟加载错误取消掉,但是这样赶鸭子上架的解决机制无疑是对程序的极度不负责,在这里我们用到hibernte自带的一种机制,session.load。
例如
notic----user
user----userInfo
三个表,notic a = (notic)session.load(notic,id);
a.getuser()
a.getuser.getuserinfo();
session.transaction.commit();
问题解决。
当然,还有个万能的方法,就是通过gethibernate获取sf工厂,通过工厂进行session申明,然后进行相关操作.