Android Realm插入冲突忽略

时间:2016-12-25 22:12:35

标签: android realm

大家。

有谁知道如何解决问题的方法? 我需要用Realm实现数据存储。

我从网络JSON对象接收将他转换为领域对象Card并保存。我使用额外字段Card展开favorite对象,并从应用程序手动更改它。

每次网络操作执行insertOrUpdate擦除值时,insert都会抛出异常' RealmPrimaryKeyConstraintException'因为我有@PrimaryKey定义。

Realm功能中是否存在如何在Insert with Ignore上使用带有特定更新的插入?

提前致谢。

1 个答案:

答案 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);

基本上,如果您不想覆盖该对象,那么您应该查询并操纵它,否则创建它。