提前致谢。
我想要检查现有和新领域模型对象之间的数据差异。
示例
public class PostModel extends RealmObject {
@Required
@PrimaryKey
@Index
private String postId;
private String message;
}
假设我们有两个对象
旧
PostModel old = new PostModel("one", "Welcome");
realm.copyToRealm(old);
新对象
PostModel newOne = new PostModel("one", "Welcome to World");
在使用newOne更新旧对象之前应该检查数据更改,如果有更改则应该在域中插入,如下所示
realm.dirtyCheckAndUpdate(old, newOne);
//底层应该在
下面我刚举了一个例子,我需要为复杂的RealmModel建立关系。
答案 0 :(得分:0)
为什么需要检查?你可以打电话给copyToRealmOrUpdate()
吗?它会更新数据,但如果它覆盖具有相同数据的数据,则最终结果是相同的。
否则,您将被迫自己实施所有检查,这非常耗时且容易出错。您也可以制作自己的注释处理器,为您生成逻辑。它看起来像是:
public boolean compare(PostModel m1, PostModel m2) {
if (!m1.getId().equals(m2.getId()) return false;
if (!m1.getMessage().equals(m2.getMessage()) return false;
if (!PostModelReference.compare(m1.getRef(), m2.getRef()) return false; // Recursive checks
}