检查多个域模型是否存在id

时间:2017-01-05 12:22:40

标签: java android web-services realm

我正在开发一个使用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。 有没有办法扩展这个方法或?

1 个答案:

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