Realm是一个非常酷的不断发展的数据库,对于它的用例,我非常喜欢它,问题是有时更新过程可能需要大量的处理和不必要的更新在手机上。我的意思是,在数据库上,你可以用一个前提条件来做upsert,基于这个前提条件,你可以更新行。在realm中有
realm.createOrUpdate(Object)
realm.createOrUpdateFromJson()
如果你有@PrimaryKey设置它将更新——问题是,它将使更新的地方我已经有更新的数据,现在主要是你将时间戳或散列键比较如果需要更新,但比你必须遍历数据和更新一个接一个,当得到JSONArray将是一个巨大的浪费领带和维护。
那么是否有可能模拟带有前置条件的更新—upsert或merge ?
upsert
语义将适用于我们所有的JSON方法,如createOrUpdateFromJson()
。它不能在正常对象上工作的原因是它不可能告诉intentional
和default
之间的区别,例如,null
对于一个字符串是真正的更新还是只是未初始化。
使用JSON,我们可以检测字段是否完全缺失,这意味着我们可以分辨出差异。