failed to lazily initialize a collection of role

可能修复了一个重大的偶尔发生的几乎难以察觉的并且到现在我也没能理解的bug。。。有时(经常)调用updateNotNullfield方法(原理是从数据库中get一个对象,然后把原对象中非空的值赋予它,再更新。其中为了判断set是否为空使用了size()方法,是此方法引发了懒加载。)更新get、query、criteria等方法取出的对象会出现
"failed to lazily initialize a collection of role" 异常,可能是session缓存引起的,但是没有比较好的解决办法,最好的办法是不要直接更新取出来的对象的未取出来的子对象,如果是取出的对象就直接update,如果是自己new出来的就可以用updateNotNullField

最近太忙,下次贴代码。。

原文地址:https://www.cnblogs.com/Mr-Nobody/p/3409670.html