我遇到Realm抱怨重复主键的问题。这是问题所在:
我有两个Realm Classes。我需要单独访问它们,而且,从一个到另一个之间存在多对一的关系。
主题:
public class Topic extends RealmObject{
@PrimaryKey
private String id;
private String subject;
}
和问题:
public class Question extends RealmObject {
@PrimaryKey
private String _id;
private RealmList<Option> options = null;
private RealmList<Answer> answer;
private Topic topic;
}
不止一个问题可以有相同的主题。但是,当我尝试创建Realm Question DB时,Realm会抛出RealmPrimaryKeyConstraintException:Value已经存在:exception。并且使用主题类的主键抛出异常。
我该如何避免这种情况?
答案 0 :(得分:0)
我在Realm Github中找到了来自this issue的解决方案。我的代码应该已经有效,因为我已经使用了两个类的主键和copyToRealmOrUpdate
来创建对象。
但是,我在Topics表之前创建了Questions表,这就是Realm尝试将新对象复制到Topics表的原因。显然,copyToRealmOrUpdate
不会自动为嵌套的Realm对象假设copyToRealmOrUpdate
行为。
只是颠倒创建它的顺序,因为(从Github链接),如果两个类都有主键,Realm处理已经存在的对象就好了。
这可能是Realm中的一个错误?