【问题标题】:Issue updating Realm on same property在同一属性上更新领域的问题
【发布时间】:2016-04-20 05:31:53
【问题描述】:

我有一个类似的列表

 List<ChatMessage> l = realm.where(ChatMessage.class).equalTo("msg_receive_status", "0").findAll();

现在我想要的是让 "msg_recieve_status" = 1

所以我尝试了,

    int count = l.size();
    realm.beginTransaction();
    for (int i = 0; i < count; i++) {
        ChatMessage m = l.get(i);
        m.setMsg_receive_status("1");
    }
    realm.copyToRealmOrUpdate(l);
    realm.commitTransaction();

但它根本不起作用。

我认为msg_receive_status 正在实时更新 RealmList。这就是问题所在。

【问题讨论】:

    标签: realm realm-list


    【解决方案1】:

    您遇到了问题,因为查询结果是“实时的”,即它始终是最新的。我们正在合并下一个版本的修复程序:https://github.com/realm/realm-java/pull/2124

    此处描述了一种解决方法:https://github.com/realm/realm-java/issues/640#issuecomment-103798064

    在您的情况下翻译为:

    List<ChatMessage> l = realm.where(ChatMessage.class).equalTo("msg_receive_status", "0").findAll();
    
    realm.beginTransaction();
    for (int i = l.size() -1; i >=0; i--) {
       l.get(i).setMsg_receive_status("1");
    }
    realm.commitTransaction();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-29
      相关资源
      最近更新 更多