gpt4 book ai didi

android - 是否可以部分更新 RealmObject

转载 作者:太空狗 更新时间:2023-10-29 13:51:44 25 4
gpt4 key购买 nike

我的应用从 REST API 获取数据。
根据端点,我得到完整或部分 Account 的列表。
当 API 响应时,我调用 realm.copyToRealmOrUpdate(accounts)

我的问题是,如果一个完整的 account 已经存储在 Realm 和相同的部分 accountrelation_tx, relation_rx , message_last_rx, message_last_tx都是nullaccounts列表中,完整的account 被完全覆盖。

我只希望 realm 更新不为 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)

相反,将您的服务器响应命名为 serverAccounts。对于其中的每个帐户:从 Realm 获取具有此 ID 的帐户 (localAccount)。如果未找到(null):将 serverAccount 添加到数据库。如果找到:在 localAccount 上手动更新您的四个字段并将 localAccount 保存到数据库。

为了优化上述内容,您可能希望使用一个 id 列表(来自 serverAccounts)执行单个 Realm 查询,并将您的更改也批量保存到 Realm。

关于android - 是否可以部分更新 RealmObject,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46058601/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com