是否可以使用前置条件模拟更新 - upsert或基于属性值合并

时间:2016-08-23 14:03:25

标签: android realm

Realm是一个非常酷的数据库,不断发展,对于我喜欢它的用例,有时候更新过程可能会在移动设备上进行大量处理和不必要的更新。 我的意思是,在DB上你可以用一个基于你可以更新行的前提条件进行upsert。 在领域有

realm.createOrUpdate(Object)
realm.createOrUpdateFromJson()

如果您设置了@PrimaryKey,它将进行更新 - 事情是它将更新数据与否的任何地方进行更新,现在大多数情况下你会为比较放置一个Timestamp或hash键如果需要更新,但是你必须迭代数据并逐个更新 - 当获得一个JSONArray时,这将大大浪费并购和维护。

是否可以使用前置条件模拟更新 - upsert或merge?

1 个答案:

答案 0 :(得分:0)

upsert语义将适用于我们所有的JSON方法,如createOrUpdateFromJson()。它不适用于普通对象的原因是无法区分intentionaldefault之间的区别,例如,null表示字符串是真正的更新还是未初始化。

使用JSON,我们可以检测到该字段是否完全丢失,这意味着我们可以区分它们。