我在Android应用中使用Sugar ORM。我的数据来自服务器,但有些模型有额外的字段,这些字段在设备端填充。当我刷新数据时,我的设备填充字段会被空值覆盖。
目前,我正在进行数据库查询以查看该对象是否已存在。如果是,我将我需要的字段保存到新对象,然后调用save()方法。必须有一个更好的方法,任何帮助将不胜感激!
我正在使用杰克逊来解析json的回应。我已经在不是来自api的字段上设置了@JsonIgnore,但它没有任何区别。
答案 0 :(得分:2)
您似乎想要保存信息并将某些字段留空?
如果是这种情况,请使用setter和getter存储对象的信息(例如public void setName()
,public String getName()
)并仅设置使用ifs的值
if (json.name.length>0)
object.setName(json.name)
之后,如果是新实体,则使用.save()
;如果是更新,则使用.commit()
。
答案 1 :(得分:0)
@JsonIgnore不会工作因为@Ignore是Sugar ORM提供的注释,但是忽略了完全离开mysql的字段。
你应该做的与你自己的方法非常相似。在比较两个对象时使用save之前,将属性从本地对象设置为服务器对象,然后保存它。
你是否会这么做很多你应该想要@Overrida在一个特殊的类中保存方法,你初始扩展糖orm,然后每个其他模型扩展到该类。