0

ormlite-android-4.29、ormlite-core-4.29

ForiegnCollectionPantryCheck クラスに、このような PantryCheckLine オブジェクトがあります。

@ForeignCollectionField(eager = true, maxEagerForeignCollectionLevel = 1)
private ForeignCollection<PantryCheckLine> pantryCheckLines;

3 つの PantryCheckLines オブジェクトがあり、そのうちの 1 つを削除したとします。次に、PantryCheckLines を組み合わせた PantryCheck を削除します。すべてが機能しているようです。しかし、のサイズはForiegnCollection正しくありません。

削除方法は以下の通り。

PantryCheckLineRepo pantryCheckLineRepo =
    new PantryCheckLineRepo(DaoFactory.getPantryCheckLineDaoInstance());
Collection<PantryCheckLine> pantryCheckLinesCollection =
    this.getPantryCheckLines();
Log.v("pantrychecklines size", pantryCheckLinesCollection.size());
pantryCheckLineRepo.delete(pantryCheckLinesCollection);
Log.v("pantrychecklines", "deleted");

あなたの助けに感謝。

4

1 に答える 1

0

delete()メソッドが何をしているのかわからないので、具体的に答えることはできません。質問を編集して、どのDao通話またはForeignCollection通話が行われているかについての詳細を追加する場合は、ここに詳細を追加できます。

コレクションのサイズが影響を受ける唯一のremove(Object)方法は、コレクション自体でメソッドを使用した場合です。バックグラウンドでアイテムを削除するためにを使用した場合Dao、コレクションは削除が行われたことを認識せず、熱心にフェッチされた内部リストのサイズは影響を受けません。遅延コレクション ( eager = false) は常にデータベースに送信されるため、 または のいずれremove(Object)dao.delete(Object)が機能します。

お役に立てれば。

于 2011-11-18T13:49:29.200 に答える