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();
}
}