我的API吸引了很多用户。获得这些用户后,将删除所有现有用户并保存新用户。我正在使用Android Priority Job QueueRetrofit2发出请求。

    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())

07-24 09:38