android数据库更新某一个字段信息,android greendao只更新实体中的特定字段

我有一个应用程序,可以从不同的服务中获取数据库中特定实体的信息,因此我使用了greenDAOs insertOrReplace方法,因此只要实体已经存在于我的数据库中,它就会被更新而不是重新创建。

到目前为止这么好。

的问题是..让说,例如起见,我的实体被称为用户,与场ID,标题和显示名。

所以在第一个电话,我得到包含只有其ID和标题字段中输入用户JSON对象,所以我将其插入DB和自然DisplayName获取插入为NULL。

随后从其他服务,我得到含有相同的用户(同一ID字段)另一JSON,但它自带的显示名为好,但不包括标题信息都没有。

因此,无论何时我在由greenDAO自动生成的DAO对象上运行insertOrReplace,用户都会更新,但由于标题信息不存在,所以当它更新时标题字段被重置为NULL,所以我最终失去了数据。

不幸的是我无法改变从服务返回的数据,并没有能够解决这个问题。我很难相信没有简单的方法可以告诉DAO对象只更新某些字段,而不是全部更新。

我正在查看由greenDAO生成的代码,并且在生成的dao对象中有一个bindValues方法,在查询执行之前被调用,显然它会从对象中过滤出NULL属性,但是无论哪种方式用NULL值更新。

我能够通过修改通过添加父类的一些方法而生成的最终的dao对象来想出某种修复方法,但我不认为这是一个好的解决方案,因为我必须这样做所有的道对象。 (我知道可以定义一个自定义的超类,但这只适用于实体对象而不适用于DAO)。

我会很感激,如果有人对我怎么能解决这个任何想法,并为长的解释很抱歉,我只是想在我的问题清楚。

谢谢。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值