2015-12-18 13 views

Odpowiedz

13

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

+0

Ta odpowiedź jest przestarzała. Zobacz odpowiedź The Todor na działające rozwiązanie. –

+0

Zamiast tego należy użyć metody results.deleteAllFromRealm(), ponieważ results.clear() jest przestarzałe. plz zaktualizuj swoją odpowiedź –

+0

w rzeczywistości 3.5.0 realm.clear() został przestarzały którego możesz użyć usuń –

8

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).

16

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(); 
    } 
}); 
+0

Świetne przykłady. Dzięki za udostępnienie! –

2

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(); 
    } 
+0

.clear() jest przestarzałe. – MikeOscarEcho

0

UPDATE 3.7.0

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

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. –

+0

w poprzedniej wersji Realm, istniała metoda 'clear (A.class);', która jest nieaktualna w nowszej wersji. @DavidMiguel – Aks4125

+0

'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. –

Powiązane problemy