我的API吸引了很多用户。获得这些用户后,将删除所有现有用户并保存新用户。我正在使用Android Priority Job Queue
和Retrofit2
发出请求。
if (searchResponse != null && searchResponse.getUsers() != null)
{
realm.executeTransaction(new Realm.Transaction()
{
@Override
public void execute(Realm realm)
{
RealmResults<User> users = realm.where(User.class).equalTo("isOwnUser", false).findAll();
users.deleteAllFromRealm();
realm.copyToRealm(searchResponse.getUsers());
}
});
}
所有用户都有从API填充的ID。但是当我执行
realm.copyToRealm(searchResponse.getUsers());
时,我得到:io.realm.exceptions.RealmPrimaryKeyConstraintException: Value already exists: null
最佳答案
我用这种方法解决这个问题
realm.copyToRealmOrUpdate(searchResponse.getUsers())