是否可以部分更新一个RealMobject



我的应用程序从REST API获取数据。
根据端点的不同,我获得了完整或部分Account的列表。
当API响应时,我称为realm.copyToRealmOrUpdate(accounts)

我的问题是,如果已将完整的account存储在领域和相同的部分account中,但是其中relation_txrelation_rxmessage_last_rxmessage_last_txnullaccounts列表中,完整的account完全是Overriden。

我只希望领域更新不是null的字段。有什么建议么?

以任何方式可以覆盖Account.update()方法?

@RealmClass
public class Account extends RealmObject {
    public String timestamp;
    @PrimaryKey
    public long id;
    public String name;
    public String email;
    public Relation relation_tx;
    public Relation relation_rx;
    public Message message_last_rx;
    public Message message_last_tx;
}

我认为您必须手动比较。不要将realm.copyToRealmOrUpdate(accounts)与服务器的内容调用。

而是命名您的服务器响应服务器计算。对于其中的每个帐户:从Realm中获取此ID的帐户(LocalAccount)。如果找不到(null):将服务器计算添加到数据库中。如果发现:在Localaccount上手动更新您的四个字段,然后将Locarcount保存到DB。

要优化上述内容,您可能需要使用ID列表(来自ServerAccounts)进行单个领域查询,并将更改保存在一批中。

最新更新