How to delete object from Realm Database Android?

谁说胖子不能爱 提交于 2019-11-28 08:00:19
Christian Melchior

In 0.88.3 and below you can do:

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

From 0.89 (next release) this will be deleteAllFromRealm() instead.

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

This must be done between the realm.beginTransaction(); and the realm.commitTransaction(); I also listed in the code example a few 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();

this is how i Used it

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

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

 datos.deleteAllFromRealm();
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!