我正在开发一个使用Realm
数据库的应用。
它与我的WebAPI进行通信,获取JSON
数据,并将其转换为对象,然后插入Realm
。
现在我陷入困境,当用户尝试更新数据库时,它会获得相同的数据,因此数据会倍增。
我搜索过同样的问题,解决方案就是这样。
private boolean exists(long id){
Realm realm = Realm.getDefaultInstance();
RealmQuery<Articles> query = realm.where(Articles.class)
.equalTo("id", id);
return query.count() != 0;
这种方法的缺点是我有多达10个模型,所以我应该为每个模型写RealmQuery
。
有没有办法扩展这个方法或?
答案 0 :(得分:2)
如果id标有@PrimaryKey注释,则自动更新对象。
<强>模型:强>
public class Articles extends RealmObject {
@PrimaryKey
private long id;
//getters and setters
}
插入强>
Article article = getFromApi();
Realm realm = Realm.getDefaultInstance();
realm.beginTransaction();
realm.copyToRealmOrUpdate(article);
realm.commitTransaction();