我在我的 Android 应用程序中使用 Sugar ORM。我的数据来自服务器,但某些模型具有在设备端填充的额外字段。当我刷新数据时,我的设备填充字段被空值覆盖。
目前,我正在执行数据库查询以查看该对象是否已经存在。如果是这样,我将需要的字段保存到我的新对象中,然后调用 save() 方法。必须有更好的方法,任何帮助将不胜感激!
我正在使用 Jackson 来解析 json 响应。我在不是来自 api 的字段上设置了 @JsonIgnore,但这没有任何区别。
您似乎想保存信息并将某些字段留空?如果是这种情况,请使用 setter 和 getter 来存储对象的信息(例如public void setName()
, public String getName()
)并仅使用 ifs 设置您拥有的值
if (json.name.length>0)
object.setName(json.name)
之后.save()
在新实体或.commit()
更新的情况下使用。
@JsonIgnore 不起作用,因为@Ignore 是Sugar ORM 提供的注释,但忽略是为了将字段完全排除在mysql 之外。
您应该做的与您自己的方法非常相似。在比较两个对象时使用保存之前,将本地对象的属性设置为服务器对象,然后保存。
您是否会经常这样做,您可能希望在一个特殊的类中 @Overrida 保存方法,在该类中您最初扩展了 Sugar orm,然后将所有其他模型扩展到该类。