hibernate 懒加载异常

懒加载异常

上代码

输入图片说明

代码第126行 bean.getLoanMain().getStatus() 报错了。

hibernate懒加载异常,网上看到资料地址 https://www.cnblogs.com/sunnyCx/p/7765366.html

四种方法: 1、hibernate配置文件不要懒加载,lazy=“false”; 2、关联查询hql 用left join fetch; 3、改变web.xml的配置文件,加过滤器(尝试了无效) 4、改变映射关系,这个有点麻烦,实体映射关系轻易不要改动为好;

然后发现一个迫切查询的方法 1、FetchType.LAZY:懒加载,加载一个实体时,定义懒加载的属性不会马上从数据库中加载。

2、FetchType.EAGER:急加载,加载一个实体时,定义急加载的属性会立即从数据库中加载。

为了减少查询压力所以有懒加载策略,这里是一对一关系,不会造成太大数据库压力,所以改为迫切查询(急加载)

输入图片说明

将原先的FetchType.LAZY 改为FetchType.EAGER 问题解决。

网上有说出现懒加载异常的原因是,service查询执行完了,session已经关闭,页面有时候还需要从bean中获取关联的bean; 这里还有另一种情况,查询出的bean进行了更新操作,最后需要从bean中关联的bean获取属性,保存日志,报错!

sysLoanLogService.addLog(bean.getMainId(), bean.getLoanMain().getStatus(), "重新分配催缴人员", remark);

这里报错了。

猜你喜欢

转载自my.oschina.net/u/2301293/blog/1812317
今日推荐