【问题标题】:Sugar ORM - Update record but ignore fields if null valueSugar ORM - 更新记录但如果为空值则忽略字段
【发布时间】:2015-04-08 23:06:57
【问题描述】:

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

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

我正在使用 Jackson 来解析 json 响应。我在不是来自 api 的字段上设置了@JsonIgnore,但这没有任何区别。

【问题讨论】:

  • 请提供您的实体并保存代码。

标签: android sugarorm


【解决方案1】:

您似乎想保存信息并将某些字段留空? 如果是这种情况,请使用 setter 和 getter 来存储对象的信息(例如 public void setName()public String getName())并仅使用 ifs 设置您拥有的值

if (json.name.length>0)
    object.setName(json.name)

之后,如果是新实体,则使用 .save(),如果是更新,则使用 .commit()

【讨论】:

    【解决方案2】:

    @JsonIgnore 不起作用,因为@Ignore 是Sugar ORM 提供的注解,而ignore 是完全离开mysql 的字段。

    您应该做的与您自己的方法非常相似。在比较两个对象时使用保存之前,将本地对象的属性设置为服务器对象,然后保存。

    您是否会经常这样做,您可能应该想@Overrida 在一个特殊的类中保存方法,您最初在该类中扩展了糖 orm,然后将所有其他模型扩展到该类。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-04-10
      • 1970-01-01
      • 2019-12-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-31
      • 1970-01-01
      相关资源
      最近更新 更多