2016-04-10 5 views
1

私は、各ユーザーがアイテムを販売することができ、他のユーザーがウィッシュリストに販売するアイテムを追加することもできるショップアプリケーションを開発しています。RealmResults to RealmList

ユーザープロファイルでは、彼がウィッシュリストに追加したすべてのアイテムを表示したいと考えています。

マイクラス&関係は、次のとおり

アイテム{ ID、 sellerId、 ...(他の特性) }

ユーザー{ はuserId、 ...(他のpropeties) }

願い{ ユーザーID、 アイテムID }

問題は、私がする必要があるwish-list項目を取得するためです。 1.与えられたユーザーIDのwish-listリストを取得します。 2. foreach wish-listアイテムは、Wish-> ItemIdプロパティに基づいてデータベースからアイテムを取得します。

RealmList<Item> items = new RealmList<>(); 
    RealmResults<Wish> wishes= realm.where(Wish.class).equalTo("UserId", userId).findAll(); 
    for(Wish w : wishes) 
    { 
     Item item = realm.where(Item.class).equalTo("ItemId", w.getItemId).findfirst(); 
     items.add(item); 
    } 

問題は、これが私のrealmlistを与えますが、私はRealmResults

何かアドバイスが必要だということでしょうか?

+0

'items.whereを()のfindAll()は'あなたにRealmResultsを与えるが、あなたはRealmResultsが必要何らかの理由でしょうか? –

答えて

1

あなたはこのwalkaroundを使用することができます。

RealmQuery<Item> query = realm.where(Item.class); 
    RealmResults<Wish> wishes= realm.where(Wish.class).equalTo("UserId", userId).findAll(); 
    for(Wish w : wishes) 
    { 
     query.equalTo(”itemId”, w.getItemId()).or() 
    } 
    query.equalTo(”itemId”, Constants.DEFAULT); //this is a must for the right hand side ”or” rule. 

    RealmResults<Item> items = query.findAll(); 
+0

働いていただきありがとうございます。 –

関連する問題