Подтвердить что ты не робот

Как удалить объект из Realm Database Android?

Я хочу удалить весь объект сообщения из области, равный 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();
4b9b3361

Ответ 1

В пунктах 0.88.3 и ниже вы можете:

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

От 0.89 (следующая версия) вместо этого будет 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();
    }
});

Ответ 2

Это должно быть сделано между realm.beginTransaction(); и realm.commitTransaction(); Я также перечислял в примере кода несколько args().

    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();

Ответ 3

вот как я использовал его

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