我正在序列化一个具有深层次对象的对象。
反序列化后,我只能访问序列化前对象中可用的那些字段。休息时,我得到LazyInitializationException。
class A {
List<B> objs
}
class B {
C c
}
class C {
D d
}
最初,我曾经在访问a.objs * .c时获取LazyInitializationException 然后我在序列化之前执行了一个循环:a.objs.each {it.c} 现在我在a.objs * .c.d而不是a.objs * .c
得到LazyInitializationException如何在序列化之前确保该对象从DB中获取每个引用?
答案 0 :(得分:0)
我能想到的唯一方法就是遍历对象图,初始化你找到的任何懒惰的集合。
唯一的另一种方法是在每个域类中使用映射闭包来禁用延迟加载。
使用refresh()方法反序列化后,是否不能从数据库刷新对象?