在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/

10-11 12:11