na iOS możemy łatwo wywołać realm.deleteAllObjects();
, aby usunąć wszystkie obiekty z naszej bazy danych o Królestwie.Usuń wszystkie obiekty Królestwa Podczas wykonywania w środowisku wykonawczym
Jak możemy osiągnąć to samo w systemie Android?
na iOS możemy łatwo wywołać realm.deleteAllObjects();
, aby usunąć wszystkie obiekty z naszej bazy danych o Królestwie.Usuń wszystkie obiekty Królestwa Podczas wykonywania w środowisku wykonawczym
Jak możemy osiągnąć to samo w systemie Android?
Można to zrobić za pomocą WYNIKI Na przykład, jeśli chcę usunąć wszystkie obiekty pies, mogę zrobić 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();
Ref: documentation
Na razie clear()
jest przestarzała. Zamiast tego, odnosząc się do documentation, powinieneś użyć results.deleteAllFromRealm()
lub realm.deleteAll()
lub realm.delete(Dog.class)
.
Usuń wszystkie obiekty z bazy Realm:
realm.executeTransaction(new Realm.Transaction() {
@Override
public void execute(Realm realm) {
realm.deleteAll();
}
});
Usuń wszystkie obiekty w rodzaju z bazy Realm:
realm.executeTransaction(new Realm.Transaction() {
@Override
public void execute(Realm realm) {
realm.delete(Dog.class);
}
});
Usuń wyniki zapytania:
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();
}
});
Świetne przykłady. Dzięki za udostępnienie! –
jestem użyć tego do Usuń wszystkie obiekty:
private void clearAllRealmPerson(){
Realm realm = Realm.getDefaultInstance();
realm.beginTransaction();
realm.clear(Person.class);
realm.commitTransaction();
realm.close();
}
.clear() jest przestarzałe. – MikeOscarEcho
UPDATE 3.7.0
realm.beginTransaction();
realm.deleteAll();
//else realm.delete(obj_A.class);
realm.commitTransaction();
Czy możesz rozwinąć nieco więcej swojej odpowiedzi? Nie mogę znaleźć tego, co zmieniło się w 3.7.0 w odniesieniu do tego tematu. Dziękuję Ci. –
w poprzedniej wersji Realm, istniała metoda 'clear (A.class);', która jest nieaktualna w nowszej wersji. @DavidMiguel – Aks4125
'clear' było [przestarzałe w wersji 0.89.0] (https://github.com/realm/realm-java/blob/master/CHANGELOG.md#deprecated-7) nie w 3.7.0. –
Ta odpowiedź jest przestarzała. Zobacz odpowiedź The Todor na działające rozwiązanie. –
Zamiast tego należy użyć metody results.deleteAllFromRealm(), ponieważ results.clear() jest przestarzałe. plz zaktualizuj swoją odpowiedź –
w rzeczywistości 3.5.0 realm.clear() został przestarzały którego możesz użyć usuń –