【发布时间】:2015-05-14 07:28:52
【问题描述】:
我已经开始使用 Android 版 Realm。到目前为止我很喜欢它,但我在尝试理解如何正确使用“copyToRealmOrUpdate”时遇到了一些问题。
每次打开应用程序时,我都会收到一个带有 X 个“联系人”的 JSON(我正在映射到一个联系人 RealmObject 数组),如果它们不存在,我想将它们插入到 Realm DB 中,或更新它们以防万一。
这里的问题是每次我这样做时都会遇到主键错误,所以它似乎总是插入这些记录:“主键约束已损坏。值已经存在:row_id1”
RealmObject 声明了一个 @PrimaryKey "Id"。在这个测试场景中,我尝试添加相同的 5 条记录两次。
这是我的插入代码:
mRealm.beginTransaction();
Contact contact;
for (int i = 0; i < contactArrayList.size(); i++) {
contact = mRealm.createObject(Contact.class);
contact.setId(contactArrayList.get(i).getId());
contact.setFirstName(contactArrayList.get(i).getFirstName());
...
mRealm.copyToRealmOrUpdate(contact);
}
mRealm.commitTransaction();
任何帮助将不胜感激,谢谢!
【问题讨论】: