2017-01-05 5 views
0

Realmデータベースを使用するアプリケーションで作業しています。 WebAPIと通信して、JSONデータを取得し、オブジェクトに変換してRealmに挿入します。 今私は苦労しています。ユーザーがデータベースを更新しようとすると、同じデータを取得するため、データが増えます。複数のレルムモデルにIDが存在するかどうかをチェック

私は同じ問題を探しましたが、解決策は次のようなものになります。

private boolean exists(long id){ 
     Realm realm = Realm.getDefaultInstance(); 
     RealmQuery<Articles> query = realm.where(Articles.class) 
       .equalTo("id", id); 
     return query.count() != 0; 

この方法の欠点は、私が一つ一つのためRealmQueryを書く必要がありますので、私は、最大10個のモデルを持っているということです。 この方法を拡張する方法はありますか?

+0

10機種について、あなたは何exacltyことは、あなたの問題であり、各... – Meenal

+0

ごとに異なるIDを持っている必要があります、あなたは更新できませんdata..or同じレコードが複数回挿入されるか、IDに基づいてデータを取得したいとします。 – Meenal

答えて

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(); 
+1

例外が発生します。値はすでに存在しているためです。 – FiN

+1

いいえRealmのモデルはすでに更新されます。 –

+0

私は別のアプローチを使用していました。 '記事ar = realm.createObject()'、私はこのメソッド 'copyToRealmOrUpdate()'を見ませんでした。助けてくれてありがとう、今それは魅​​力のように働く! – FiN

関連する問題