我刚刚开始使用领域,我创建了一个独立的对象,然后我为该对象设置了唯一的id并将其复制到领域。
public class User extends RealmObject {
@PrimaryKey
private int id;
private String name;
}
User user = new User();
user.setName("some name");
user.setId(somePrimaryKey);
realm.copyToRealm(user);
稍后我正在更新同一个对象的主键(id)
user.setId(newPrimaryKey);
我观察到这导致了领域的重复。我只是想知道它在境界中是否正常?
答案 0 :(得分:1)
在您的源代码中,user
在调用realm.copyToRealm(user)
后仍然是独立对象。
您应该向用户提供返回值,例如user = realm.copyToRealm(user);
,然后用户将由Realm管理。
用户由Realm管理后,当您致电user.setId(newPrimaryKey);
并且领域中存在newPrimaryKey
的对象时,系统会引发RealmPrimaryKeyConstraintException
。