首页 > 解决方案 > 领域避免更新嵌套对象

问题描述

我有一个应用程序可以存储大量数据以供离线工作。我有三个类,在一个层次结构中;

public class MainGroup
{
 private UUID Oid;
 private String name;
 private Date CreatedOn;
}

-

public class Group
{
 private UUID Oid;
 private String name;
 private Date CreatedOn;
 private MainGruop MainGroup;
}

-

public class Product
{
 private UUID Oid;
 private String name;
 private Date CreatedOn;
 private MainGruop MainGroup;
 private Group Group;
}

(Oid 字段被选为 PrimaryKey,具有领域属性。)

假设所有 MainGroup 对象都存储在 Realm DB 中。然后,当我尝试插入带有嵌套 MainGroup 对象但只有其 Oid 字段来链接其主对象的 Group 对象时,Realm 会更新 MainProduct 记录(具有给定的 Oid),并将其他字段清除为空值。

同样,当我插入 Product 对象并且嵌套对象仅包含 Oid 时,领域会使用空值更新所有字段。

所以,有更复杂和深度相关的对象,当我请求从服务器获取 JSON 时,我必须产生一个非常大的 JSON 响应来保存数据。

并提到插入方法;我正在通过 GSON 创建带有 JSON 响应的 java 对象,并且我正在使用Realm.copyToRealmOrUpdate(obj);插入方法。

为了减少有效负载(JSON 大小、序列化和插入过程),我需要找到解决此问题的方法。

标签: androidjsondatabaseooprealm

解决方案


推荐阅读