2016-11-02 4 views
0

分野のjava - バルクRealmResultsに更新またはこのようRLMResultsコレクションに更新操作を行うことが可能であるレルムにObjCでRealmQuery

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以上の繰り返しを実行する必要があります各オブジェクトの値を設定しますか? Like

RealmResults<Pubs> results = query.findAll(); 

realm.beginTransaction(); 
for (Pubs p : results) { 
    p.deleted = 1; 
} 
realm.commitTransaction(); 

答えて

2

はい、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; 
     } 
    } 
}); 
+0

私はそれを感謝しました。一般的には、realm Javaはrealm objcよりも弱く、述語などが不足しているようです – luky

+1

Realm-Javaは若くて、よりシステム固有の問題を修正しなければなりませんでした(そして、Object Store統合では、修正するには) - しかし、そのようなバッチ更新はRealm-Javaにとって非常にうれしいです。 – EpicPandaForce

+0

ok .............. – luky

関連する問題