Удалить все объекты Realm во время выполнения

в iOS мы можем легко вызвать realm.deleteAllObjects();, чтобы удалить все объекты в нашей базе данных Realm.

Как мы можем добиться того же в Android?

Ответ 1

Вы можете сделать это, используя results-. Например, если я хочу удалить все объекты Dog, я могу сделать following-

// 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

Удалить все объекты из базы данных 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();
    }
});

Ответ 3

На данный момент clear() устарел. Вместо этого, ссылаясь на документацию, вы должны использовать results.deleteAllFromRealm() или realm.deleteAll() или realm.delete(Dog.class).

Ответ 4

Я использую это для удаления всех объектов:

    private void clearAllRealmPerson(){

        Realm realm = Realm.getDefaultInstance();

        realm.beginTransaction();
        realm.clear(Person.class);
        realm.commitTransaction();
        realm.close();
   }

Ответ 5

           try {
       val realm = Realm.getDefaultInstance()
        realm.beginTransaction()
        realm.delete<Dog>()
        realm.insertOrUpdate(dogs)
        realm.commitTransaction()
        realm.close()
    } catch (e: Exception) {
        e.message
    }

Ответ 6

Похоже, что Realm API изменился. Согласно документам, теперь это путь

let all = realm.objects(Books.self)
realm.delete(all)

Не забудьте обернуть его в транзакцию, если вы этого еще не сделали.

    try! realm.write {
            let all = realm.objects(Rogets.self)
            realm.delete(all)
        }

Ответ 7

ОБНОВЛЕНИЕ 3.7.0

realm.beginTransaction();
realm.deleteAll();
//else realm.delete(obj_A.class);
realm.commitTransaction();