在Realm ObjC中,可以对RLMResults集合执行更新操作,如下所示:
RLMResults<Pubs *> *pubsToDelete = [Pubs objectsWhere: @"NOT (pubId IN %@)", apiIds];
[[RLMRealm defaultRealm] transactionWithBlock:^{
// all pubs in pubsToDelete will be updated
[pubsToDelete setValue:@YES forKeyPath:@"deleted"];
}];
在Java版本中是否也可以,或者我必须对RealmResults执行迭代并为每个对象设置值?喜欢
RealmResults<Pubs> results = query.findAll();
realm.beginTransaction();
for (Pubs p : results) {
p.deleted = 1;
}
realm.commitTransaction();
最佳答案
是的,在Realm-Java中,您需要迭代所有对象。
realm.executeTransaction(new Realm.Transaction() {
@Override
public void execute(Realm realm) {
RealmResults<Pubs> results = query.findAll();
for(Pub p : results) {
p.deleted = 1;
}
}
});
关于java - realm java-RealmResults或RealmQuery上的批量更新,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40382818/