Sugar ORM - 更新记录但如果为null值则忽略字段

时间:2015-04-08 23:06:58

标签: android sugarorm

我在Android应用中使用Sugar ORM。我的数据来自服务器,但有些模型有额外的字段,这些字段在设备端填充。当我刷新数据时,我的设备填充字段会被空值覆盖。

目前,我正在进行数据库查询以查看该对象是否已存在。如果是,我将我需要的字段保存到新对象,然后调用save()方法。必须有一个更好的方法,任何帮助将不胜感激!

我正在使用杰克逊来解析json的回应。我已经在不是来自api的字段上设置了@JsonIgnore,但它没有任何区别。

2 个答案:

答案 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,然后每个其他模型扩展到该类。