realm.deleteAllObjects();
来删除Realm数据库中的所有对象。
我们如何在Android中实现相同目标?
答案 0 :(得分:21)
删除Realm数据库中的所有对象:
realm.executeTransaction(new Realm.Transaction() {
@Override
public void execute(Realm realm) {
realm.deleteAll();
}
});
从Realm数据库中删除某种对象:
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();
}
});
答案 1 :(得分:16)
您可以使用结果执行此操作 - 例如,如果我想删除所有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();
答案 2 :(得分:8)
现在{@ 1}}已弃用。相反,请参考documentation,您应该使用clear()
或results.deleteAllFromRealm()
或realm.deleteAll()
。
答案 3 :(得分:3)
我用它来删除所有对象:
private void clearAllRealmPerson(){
Realm realm = Realm.getDefaultInstance();
realm.beginTransaction();
realm.clear(Person.class);
realm.commitTransaction();
realm.close();
}
答案 4 :(得分:0)
try {
val realm = Realm.getDefaultInstance()
realm.beginTransaction()
realm.delete<Dog>()
realm.insertOrUpdate(dogs)
realm.commitTransaction()
realm.close()
} catch (e: Exception) {
e.message
}
答案 5 :(得分:0)
看起来Realm API已更改。根据{{3}},这就是现在的方式
let all = realm.objects(Books.self)
realm.delete(all)
如果还没有,请不要忘记将其包装在事务中。
try! realm.write {
let all = realm.objects(Rogets.self)
realm.delete(all)
}
答案 6 :(得分:-1)
更新3.7.0
realm.beginTransaction();
realm.deleteAll();
//else realm.delete(obj_A.class);
realm.commitTransaction();