на iOS мы сможем легко позвонить realm.deleteAllObjects();
, чтобы удалить все объекты из нашей базы данных Realm.Удалить все объекты Realm во время выполнения
Как мы можем добиться того же в Android?
на iOS мы сможем легко позвонить realm.deleteAllObjects();
, чтобы удалить все объекты из нашей базы данных Realm.Удалить все объекты 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();
Ref: documentation
Сейчас clear()
осуждается. Вместо этого, ссылаясь на documentation, вы должны использовать results.deleteAllFromRealm()
или realm.deleteAll()
или realm.delete(Dog.class)
.
Удалить все объекты из базы данных 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();
}
});
Отличные примеры. Спасибо, что поделился! –
Я использую это для всех удаляемых объектов:
private void clearAllRealmPerson(){
Realm realm = Realm.getDefaultInstance();
realm.beginTransaction();
realm.clear(Person.class);
realm.commitTransaction();
realm.close();
}
.clear() устарел. – MikeOscarEcho
UPDATE 3.7.0
realm.beginTransaction();
realm.deleteAll();
//else realm.delete(obj_A.class);
realm.commitTransaction();
Можете ли вы подробнее рассказать о своем ответе? Я не могу найти, что изменилось в 3.7.0 по этой теме. Спасибо. –
в предыдущей версии Realm, был метод 'clear (A.class);', который устарел в более новой версии. @DavidMiguel – Aks4125
'clear' был [устарел в версии 0.89.0] (https://github.com/realm/realm-java/blob/master/CHANGELOG.md#deprecated-7) не в 3.7.0. –
Этот ответ является устаревшим. См. Ответ «Тодор» для рабочего решения. –
Вместо этого вы должны использовать results.deleteAllFromRealm(), так как results.clear() устарел. plz обновите свой ответ –
в области 3.5.0 realm.clear() устарел, вы можете использовать delete –