首页 文章

Android Realm插入冲突忽略

提问于
浏览
1

大家 .

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

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

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

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

提前致谢 .

1 回答

  • 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);
    

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

相关问题