Android 是否可以部分更新RealmObject

Android 是否可以部分更新RealmObject,android,realm,Android,Realm,我的应用程序从REST API获取it数据。 根据端点,我将获得完整或部分帐户的列表 当API响应时,我调用realm.copyToRealmOrUpdate(accounts) 我的问题是,如果一个完整的帐户已经存储在域中,并且相同的部分帐户但是关系,关系,消息,消息在帐户列表中为空,完整的帐户被完全覆盖 我只想更新非null的字段。 有什么建议吗 我有没有办法重写Account.update()方法 @RealmClass public class Account extends Realm

我的应用程序从REST API获取it数据。
根据端点,我将获得完整或部分
帐户的列表

当API响应时,我调用realm.copyToRealmOrUpdate(accounts)

我的问题是,如果一个完整的
帐户
已经存储在域中,并且相同的部分
帐户
但是
关系
关系
消息
消息
帐户
列表中
为空
,完整的
帐户
被完全覆盖

我只想更新非
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。对于其中的每个帐户:从域中获取具有此id的帐户(localAccount)。如果未找到(null):将serverAccount添加到数据库中。如果找到:手动更新localAccount上的四个字段,并将localAccount保存到DB


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

什么是
关系以及它存在的原因?
关系
只是一个定义与另一个帐户关系的对象。我个人建议使用
如果(x!=null)obj.setX(x)
方法,考虑到这是明确的。嗨,弗兰克。我已经考虑过了,但我希望有另一个解决方案。嗨,我不知道。如果你找到了,请告诉我。你可以使用
createorupdatealfromjson()
。我们所有的json方法都只更新实际存在的字段。(JSON导入方法仅在您的JSON对象与领域模式的结构完全相同的情况下有效,包括字段名。)@ChristianMelchior问题是所有字段都存在,但
null