48 votes

Comment supprimer un objet de la base de données Realm Android?

Je veux supprimer tous les objets de message du royaume qui sont égaux à userid

 RealmQuery<Message> rowQuery = realm.where(Message.class).equalTo(Message.USER_ID, userId);
realm.beginTransaction();
//TODO : here I want to remove all messages where userId is equal to "9789273498708475"
realm.commitTransaction();
 

122voto

ChristianMelchior Points 494

Dans 0.88.3 et ci-dessous, vous pouvez faire:

 realm.executeTransaction(new Realm.Transaction() {
    @Override
    public void execute(Realm realm) {
        RealmResults<Message> rows = realm.where(Message.class).equalTo(Message.USER_ID,userId).findAll();
        rows.clear();
    }
});
 

À partir de 0,89 (prochaine version), ce sera plutôt deleteAllFromRealm() .

 realm.executeTransaction(new Realm.Transaction() {
    @Override
    public void execute(Realm realm) {
        RealmResults<Message> result = realm.where(Message.class).equalTo(Message.USER_ID,userId).findAll();
        result.deleteAllFromRealm();
    }
});
 

11voto

Roger Belk Points 11

Cela doit être fait entre le realm.beginTransaction (); et le realm.commitTransaction (); J'ai également énuméré dans l'exemple de code quelques arguments ().

     realm.beginTransaction();
    MessageObject messageobj = realm.where(Message.class)
                             .findFirst()  //or
                             .greaterThan("age", 10) // implicit AND
                             .beginGroup() //or you can use
                             .equalTo("name", "Peter")
                             .or()
                             .contains("name", "Jo")
                             .endGroup()
                             .findAll();
    messageobj.deleteFromRealm();
    realm.commitTransaction();
 

4voto

Paul Mathew Points 144

voici comment je l'ai utilisé

   RealmResults<CartDBItems> rows= realm.where(CartDBItems.class).equalTo("id", id).findAll();;
         rows.deleteAllFromRealm();
 

1voto

Tossedrichi Points 1
 myRealm.beginTransaction();

     RealmResults<Datos> datos = myRealm.where(DatosCliente.class)
                        .equalTo("folio",FOLIO)
                        .findAll();

 datos.deleteAllFromRealm();

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X