渴望获取一个对象

时间:2009-09-15 10:47:12

标签: serialization grails groovy

我正在序列化一个具有深层次对象的对象。

反序列化后,我只能访问序列化前对象中可用的那些字段。休息时,我得到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中获取每个引用?

1 个答案:

答案 0 :(得分:0)

我能想到的唯一方法就是遍历对象图,初始化你找到的任何懒惰的集合。

唯一的另一种方法是在每个域类中使用映射闭包来禁用延迟加载。

使用refresh()方法反序列化后,是否不能从数据库刷新对象?