大家。
有谁知道如何解决问题的方法? 我需要用Realm实现数据存储。
我从网络JSON对象接收将他转换为领域对象Card
并保存。我使用额外字段Card
展开favorite
对象,并从应用程序手动更改它。
每次网络操作执行insertOrUpdate
擦除值时,insert
都会抛出异常' RealmPrimaryKeyConstraintException'因为我有@PrimaryKey
定义。
Realm功能中是否存在如何在Insert with Ignore上使用带有特定更新的插入?
提前致谢。
答案 0 :(得分:1)
Card card = realm.where(Card.class).equalTo(CardFields.ID, cardId).findFirst(); // https://github.com/cmelchior/realmfieldnameshelper
if(card == null) {
card = realm.createObject(Card.class, cardId);
}
card.setFavorite(true);
或者
Card card = realm.where(Card.class).equalTo(CardFields.ID, cardId).findFirst(); // https://github.com/cmelchior/realmfieldnameshelper
if(card == null) {
card = new Card();
card.setId(cardId);
}
card.setFavorite(true);
realm.insertOrUpdate(card);
基本上,如果您不想覆盖该对象,那么您应该查询并操纵它,否则创建它。