2016-12-25 77 views
1

大家。Android的境界插入忽略

有谁知道路该怎么解决问题? 我需要用Realm来实现数据存储。

我从网络JSON对象接收转换他的境界对象Card并保存。我扩大与额外字段favoriteCard对象,并从应用程序手动更改。

当网络操作执行insertOrUpdate湿巾值每一次,和insert抛出一个异常“RealmPrimaryKeyConstraintException”因为我有@PrimaryKey定义。

是否存在着境界功能如何使用的刀片与插入特定的更新与忽略?

在此先感谢。

回答

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