尝试从我的POJO中读取外国集合时出现此错误
AndroidRuntime(589): Caused by: java.lang.IllegalStateException: Internal DAO
object is null. Lazy collections cannot be used if they have been deserialized.
违规集合是answers1
,我将其标记为'急切'
@ForeignCollectionField (eager=true)
private ForeignCollection<TextAnswer> answers1;
为什么然后我调试下面的方法
public List<TextAnswer> getAnswers() {
return new ArrayList<TextAnswer>(answers1);
}
它告诉我该集合是一个LazyForeignCollection?我很困惑。
我在使用ForeignCollections的任何其他类中都没有这方面的问题:(
答案 0 :(得分:2)
如果已经反序列化了懒惰集合,则无法使用它们。
有趣的问题。首先,该消息仅在<{1}}类中 。 LazyForeignCollection
字段使用是否有可能变得懒惰并被序列化?是否涉及序列化?除非对象已被序列化,否则answer1
内的dao
字段绝不应为ForeignCollection
。
我现在的假设是您正在反序列化该类的先前版本。如果情况并非如此,那我就不知道了。