2016-12-25 3 views
1

みんなが無視します。Androidレルム競合時に挿入すると、

誰かが問題を解決する方法を知っていますか? Realmでデータストレージを実装する必要があります。

私はネットワークJSONオブジェクトから受信し、領域オブジェクトCardに変換して保存します。追加のフィールドfavoriteを持つCardオブジェクトを展開し、アプリケーションから手動で変更します。私は@PrimaryKey定義を持っているので、

ネットワーク操作がinsertOrUpdateワイプ値を実行するたびに、そしてinsertは例外「RealmPrimaryKeyConstraintException」をスローします。

Insert with Ignoreの特定のアップデートでインサートを使用する方法がRealm機能に存在しますか?

ありがとうございます。

答えて

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

オブジェクトを上書きしたくない場合は、基本的に、あなたはそれ以外の場合は、それを作成し、それを照会し、それを操作する必要があります。

+0

少し助けてくれます。 – Gark

関連する問題