无法让LazyForeignCollection成为渴望收藏

时间:2012-11-05 00:05:02

标签: android ormlite

尝试从我的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的任何其他类中都没有这方面的问题:(

1 个答案:

答案 0 :(得分:2)

  

如果已经反序列化了懒惰集合,则无法使用它们。

有趣的问题。首先,该消息仅在<{1}}类中 LazyForeignCollection字段使用是否有可能变得懒惰并被序列化?是否涉及序列化?除非对象已被序列化,否则answer1内的dao字段绝不应为ForeignCollection

我现在的假设是您正在反序列化该类的先前版本。如果情况并非如此,那我就不知道了。