iOSでは、realm.deleteAllObjects();
を簡単に呼び出して、Realmデータベース内のすべてのオブジェクトを削除できます。
Androidで同じようにするにはどうすればよいですか?
結果を使用してこれを行うことができます。たとえば、すべてのDogオブジェクトを削除したい場合は、次のようにできます-
// obtain the results of a query
RealmResults<Dog> results = realm.where(Dog.class).findAll();
// All changes to data must happen in a transaction
realm.beginTransaction();
// Delete all matches
results.deleteAll();
realm.commitTransaction();
参照: ドキュメント
レルムデータベースからすべてのオブジェクトを削除:
realm.executeTransaction(new Realm.Transaction() {
@Override
public void execute(Realm realm) {
realm.deleteAll();
}
});
ある種類のすべてのオブジェクトをレルムデータベースから削除します:
realm.executeTransaction(new Realm.Transaction() {
@Override
public void execute(Realm realm) {
realm.delete(Dog.class);
}
});
クエリの結果を削除します:
final RealmResults<Dog> results = realm.where(Dog.class).findAll();
realm.executeTransaction(new Realm.Transaction() {
@Override
public void execute(Realm realm) {
// remove single match
results.deleteFirstFromRealm();
results.deleteLastFromRealm();
// remove a single object
Dog dog = results.get(5);
dog.deleteFromRealm();
// Delete all matches
results.deleteAllFromRealm();
}
});
現時点では、clear()
は非推奨です。代わりに、 documentation を参照してください。results.deleteAllFromRealm()
またはrealm.deleteAll()
またはrealm.delete(Dog.class)
を使用してください。
私はすべてのオブジェクトを削除するためにこれを使用しています:
private void clearAllRealmPerson(){
Realm realm = Realm.getDefaultInstance();
realm.beginTransaction();
realm.clear(Person.class);
realm.commitTransaction();
realm.close();
}
try {
val realm = Realm.getDefaultInstance()
realm.beginTransaction()
realm.delete<Dog>()
realm.insertOrUpdate(dogs)
realm.commitTransaction()
realm.close()
} catch (e: Exception) {
e.message
}
Realm APIが変更されたようです。 the docs によると、これが現在の方法です
let all = realm.objects(Books.self)
realm.delete(all)
まだラップしていない場合は、トランザクションでラップすることを忘れないでください。
try! realm.write {
let all = realm.objects(Rogets.self)
realm.delete(all)
}