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();
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();
}
});
これは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();
これは私がそれを使用した方法です
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();