返回信息流请教各位大牛,hibernate里面使用延迟加载时经常会出现的一个session关闭报错的问题,在spring下这个问题可以用openSessionInView来解决,可是如果我不用spring的环境,请问如何解决这个我问题呢,把lazy设为false除外
这是一条镜像帖。来源:北邮人论坛 / java / #17968同步于 2011/4/22
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Java机器人发帖
hibernate延迟加载问题
luox12
2011/4/22镜像同步5 回复
订阅后,新回复会通过你的通知中心匿名送达。
5 条回复
那应该就只能用Hibernate.initialize强制初始化了
【 在 luox12 (春泥) 的大作中提到: 】
: 请教各位大牛,hibernate里面使用延迟加载时经常会出现的一个session关闭报错的问题,在spring下这个问题可以用openSessionInView来解决,可是如果我不用spring的环境,请问如何解决这个我问题呢,把lazy设为false除外
恩,试试,谢了
【 在 ox 的大作中提到: 】
: 那应该就只能用Hibernate.initialize强制初始化了
: 【 在 luox12 (春泥) 的大作中提到: 】
: : 请教各位大牛,hibernate里面使用延迟加载时经常会出现的一个session关闭报错的问题,在spring下这个问题可以用openSessionInView来解决,可是如果我不用spring的环境,请问如何解决这个我问题呢,把lazy设为false除外
: ...................
应该是你session关闭太早了,要么在确定数据取完了,不在从session中取数据了再关闭session,要么不用延迟加载。至于session什么时候关闭好,你可以google一下,很多种说法,比较主流的就是根据需求来,不用了就关。
将hibernate的默认提交模式设为false,然后每次手动提交,确认自己的所有操作已做完,而且引用的DAO获取的session连接是不同的,就分别关闭,若是相同,关闭一个即可.(看DAO是否继承自一个基类DAO)