1

オブジェクトをデータベースに保存するために ActiveAndroid を使用していますが、ほとんど問題なく動作します。私のアプリケーションでは、次のシナリオを使用します。

  • データベースのテーブルに新しいオブジェクトを保存します
  • そのテーブルからいくつかのオブジェクトを選択します
  • それらをリストに追加します<>
  • そのテーブルからすべてを削除します
  • リストで foreach を使用し、各オブジェクトで「保存」を呼び出します

そして、ここで問題が発生します。私のテーブルでは、前述の最近保存されたオブジェクトを除いて、オブジェクトが保存されます。「保存」が呼び出された回数を確認するためのカウンターを作成しました。カウンターは、テーブル内のオブジェクトの数よりも 1 多いです。デバッグしましたが、例外は発生せず、保存が呼び出されました。ActiveAndroid の最新バージョン (3.0.99) を使用してい
ます。確認すべき点はありますか?

4

1 に答える 1

1

まあ、シナリオを読めば、問題はシナリオで見ることができます。既存の
オブジェクトをメモリ にコピーし、再挿入しようとしました。ORM はオブジェクトの mID のみをチェックし、それが null でない場合は更新を呼び出します。私のオブジェクトにはIDがあったため、テーブルが切り捨てられたにもかかわらず更新しようとしたため、何も更新されませんでした。 モデルがテーブル自体の ID だけをチェックしないことが意図的かどうかはわかりませんが、このような問題が発生する可能性があります。

于 2013-06-19T11:52:17.623 に答える