上代码
代码第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);
这里报错了。