SSH项目报:org.hibernate.LazyInitializationException:异常

本文介绍了解决Hibernate懒加载异常的具体方法,通过设置lazy属性为false,并调整JSON配置避免无限循环,有效解决了MANYTOONE等关系映射时出现的LazyInitializationException问题。

最近在做ERP系统的时候,发现在配置MANYTOONE、MANYTOMANY、oneTomany的时候,特别容易报org.hibernate.LazyInitializationException异常,苦苦试了好多方法,都差强人意,于是自己亲测以下方法:(仅供参考,看不明白的可以私聊)

因为设计的表格里面太多级联操作,所以就会存在一个加载的问题,解决的办法是在你的实体类的hbm.xml文件中,只要是相关的表格,里面的manytomany、或者manytoone、onetomany都加上【lazy="false"】(默认lazy="true",延迟加载,导致session用的时候关闭),还有SET里面也加上【lazy="false"】。

同时,加上这个之后你可能会遇到无限循环的问题,这个时候你只要在你的ACTION里面的转换为JSON之前加上

        //防止死循环
        JsonConfig jsonconfig = new JsonConfig();
        jsonconfig.setCycleDetectionStrategy(CycleDetectionStrategy.LENIENT);

       jsonobject = JSONObject.fromObject(map,jsonconfig);


这样整个问题就可以得到解决,


小白一个,说的不对的大家原谅。。。。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值