[英]How to delete all records from realm object without fetching it in android?
[英]How to delete object from 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();
在 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.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();
对于低于 v10 领域的 android 用户。 下面给出将工作正常
realm.executeTransaction(new Realm.Transaction() {
@Override
public void execute(Realm realm) {
RealmResults<Note> result = realm.where(Notes.class).equalTo(Note.NOTE_ID,noteID).findAll();
result.deleteAllFromRealm();
}
});
但是,它会在 v10 及更高版本上崩溃
Running transactions on the UI thread has been disabled.
只要您在 v10 之前运行 Realm,如果您从 UI 线程运行执行事务,您的应用程序就不会崩溃。 对于即将发布的 v10 版本,我们将在RealmConfiguration.Builder
中引入两个新设置,即allowWritesOnUiThread
和allowQueriesOnUiThread
,这将允许用户控制是否允许从 UI 线程运行事务和/或查询。
RealmConfiguration config = new RealmConfiguration.Builder()
.allowWritesOnUiThread(true)
.build()
它会像往常一样工作。 因此,您可以决定何时/是否要选择加入新行为。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.