2

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を使用する他のクラスではこれに問題はありません:(

4

1 に答える 1

2

レイジーコレクションは、逆シリアル化されている場合は使用できません。

興味深い問題。まず、そのメッセージはクラス内にのみあります。フィールドが怠惰でシリアル化されてLazyForeignCollectionた可能性はありますか?シリアル化はまったく含まれていますか?オブジェクトがシリアル化されていない限り、 a内のフィールドは決して存在しないはずです。answer1daoForeignCollectionnull

今の私の仮定は、クラスの以前のバージョンを逆シリアル化することです。そうでない場合は、私にはわかりません。

于 2012-11-05T16:15:51.450 に答える