【发布时间】:2015-09-08 10:54:25
【问题描述】:
大家好! 我的场景是我有一个带有提要的屏幕,并且每个提要项及其详细信息都存储在一个领域中。这些项目中的每一个都定义了 offset 和 feedPostedAt 属性。当用户单击一个项目并下载项目的详细信息以提供当前数据时,就会出现问题。但是,下载的详细信息不包含属性 offset 和 feedPostedAt,因此当我在领域 (realm.copyOrUpdate()) 中更新此项目时,具有定义的 offset 和 feedPostedAt 属性的旧项目将被覆盖。
有没有办法让领域只更新已定义的值,而使具有 NULL 值的属性保持不变?
现在我正在以手动重置偏移量和 feedPostedAt 属性的方式处理这个问题,但这既不好也不有效。
【问题讨论】:
-
我认为这是不可能的,除非您自己手动进行映射 (github.com/realm/realm-java/issues/1344)
-
使用 Gson 库解析数据。它将解析和更新您的 api 响应包含的新数据。其余字段将保持原样。
-
@NooruddinLakhani 我已经在使用 Gson 库解析 api 响应,然后我手动将响应映射到新创建的 RealmObject,然后我使用 copyOrUpdate 方法。我会尝试 createOrUpdateObjectFromJson()。