1

Android用のORMツールとしてormdroidを試しています。保持したいクラスのお気に入りのオブジェクトのリストがあり、時々、それらのリストをormdroidでディスクに保存します。

ユーザーがリストから削除したお気に入りは、もちろんディスクからも削除する必要があるため、最初にすべてのお気に入りをディスクから削除してから、リストを再度保存することを考えました。

                List<Favorite> oldFavs = Entity.query(
                        Favorite.class).executeMulti();

                for (Favorite f : oldFavs) {
                    f.delete();
                    Log.d("ORM", "Deleting: " + f.getTitle());

                }

そして、お気に入りをもう一度保存します:

                for (Favorite f : myFavorites) {
                    f.save();
                        Log.d("ORM", "Saving: " + f.getTitle());                
                }

私のコードに多くの Log.d() を入れたところ、次のことがわかりました。

ディスクからすべてのお気に入りを削除した後、ormdroid を使用したクエリは確かにサイズ 0 のリストを返します。 f.save() メソッドですが、クエリではまだ使用できません。

ここで私を助けることができるormliteを積極的に使用している人、またはormliteのdelete()メソッドからのコードが実際にデータベースからこのレコードを確実に削除することを確認できる人はいますか?

public void delete() {
    if (!mTransient) {
      SQLiteDatabase db = ORMDroidApplication.getDefaultDatabase();
      db.beginTransaction();


  try {
    delete(db);
    db.setTransactionSuccessful();
  } finally {
    db.endTransaction();
  }

  db.close();
}
  }
4

1 に答える 1