Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/316.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
RealmJava-RealmResults或RealmQuery上的批量更新_Java_Realm - Fatal编程技术网

RealmJava-RealmResults或RealmQuery上的批量更新

RealmJava-RealmResults或RealmQuery上的批量更新,java,realm,Java,Realm,在Realm ObjC中,可以对RLMResults集合执行如下更新操作: RLMResults<Pubs *> *pubsToDelete = [Pubs objectsWhere: @"NOT (pubId IN %@)", apiIds]; [[RLMRealm defaultRealm] transactionWithBlock:^{ // all pubs in pubsToDelete will be updated [pubsToDelete setVa

在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"];
}];
RLMResults*pubsToDelete=[Pubs objects此处:@“NOT(pubId IN%@)”,apids];
[[RLMRealm defaultRealm]transactionWithBlock:^{
//pubsToDelete中的所有酒吧都将更新
[pubsToDelete setValue:@YES forKeyPath:@“deleted”];
}];
是否也可以在Java版本中使用,或者我必须对RealmResults执行迭代并为每个对象设置值?像

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

realm.beginTransaction();
for (Pubs p : results) {
    p.deleted = 1;
}
realm.commitTransaction();
RealmResults results=query.findAll();
realm.beginTransaction();
对于(酒吧p:结果){
p、 删除=1;
}
realm.commitTransaction();

是的,在Java领域中,您需要迭代所有对象

realm.executeTransaction(new Realm.Transaction() {
    @Override
    public void execute(Realm realm) {
        RealmResults<Pubs> results = query.findAll();
        for(Pub p : results) {
            p.deleted = 1;
        }
    }
});
realm.executeTransaction(新realm.Transaction(){
@凌驾
公共void执行(领域){
RealmResults results=query.findAll();
对于(Pub p:结果){
p、 删除=1;
}
}
});

我想好了,谢谢。一般来说,realm java似乎比realm objc弱,同样是由于缺少谓词etcYeah,realm java更年轻,必须修复更多系统特定的怪癖(现在通过对象存储集成,他们有更多的怪癖需要修复),但是像这样的批处理更新对于realm java来说非常好,这样内存效率会更高。