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

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-11-02 22:47:52  来源:igfitidea点击:

Delete All Realm Objects During Runtime

javarealm

提问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();