java 在运行时删除所有领域对象
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/34348329/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
Delete All Realm Objects During Runtime
提问by JayVDiyk
on iOS we can easily call realm.deleteAllObjects();
to remove all objects in our Realm database.
在 iOS 上,我们可以轻松调用realm.deleteAllObjects();
以删除 Realm 数据库中的所有对象。
How do we achieve the same in Android?
我们如何在 Android 中实现相同的目标?
回答by David Miguel
Delete all objects from Realm database:
从 Realm 数据库中删除所有对象:
realm.executeTransaction(new Realm.Transaction() {
@Override
public void execute(Realm realm) {
realm.deleteAll();
}
});
Delete all objects of a kind from Realm database:
从 Realm 数据库中删除所有类型的对象:
realm.executeTransaction(new Realm.Transaction() {
@Override
public void execute(Realm realm) {
realm.delete(Dog.class);
}
});
Delete the results of a query:
删除查询结果:
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();
}
});
回答by Shripada
You can do this by using results- For instance, if I want to delete all Dog objects, I can do the following-
您可以通过使用结果来做到这一点 - 例如,如果我想删除所有 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();
Ref: documentation
参考:文档
回答by iamtodor
For now clear()
is deprecated. Instead, referring to documentationyou should use results.deleteAllFromRealm()
or realm.deleteAll()
or realm.delete(Dog.class)
.
目前clear()
已弃用。相反,参考您应该使用的文档results.deleteAllFromRealm()
或realm.deleteAll()
或realm.delete(Dog.class)
。
回答by Awesome Code
I'm use this for delete all objects:
我用它来删除所有对象:
private void clearAllRealmPerson(){
Realm realm = Realm.getDefaultInstance();
realm.beginTransaction();
realm.clear(Person.class);
realm.commitTransaction();
realm.close();
}
回答by Fidan Bacaj
try {
val realm = Realm.getDefaultInstance()
realm.beginTransaction()
realm.delete<Dog>()
realm.insertOrUpdate(dogs)
realm.commitTransaction()
realm.close()
} catch (e: Exception) {
e.message
}
回答by Morten J
Looks like the Realm API has changed. According to the docs, this is now the way
看起来 Realm API 已更改。根据文档,这就是现在的方式
let all = realm.objects(Books.self)
realm.delete(all)
Don't forget to wrap it in a transaction if you haven't already.
如果您还没有将其包装在交易中,请不要忘记。
try! realm.write {
let all = realm.objects(Rogets.self)
realm.delete(all)
}
回答by Aks4125
UPDATE 3.7.0
更新 3.7.0
realm.beginTransaction();
realm.deleteAll();
//else realm.delete(obj_A.class);
realm.commitTransaction();