1

我正在开发一个商店应用程序,每个用户都可以在其中销售商品,还可以将其他用户销售的商品添加到他的愿望清单中。

现在在用户个人资料中,我想显示他添加到他的愿望清单中的所有项目。

我的班级和关系是:

Item{ Id, SellerId, ...(其他属性) }

用户{ userId, ...(其他属性)}

Wish{ 用户 ID, 项目 ID }

现在的问题是,为了获得我需要做的愿望清单项目: 1. 获取给定用户 ID 的愿望清单。2. foreach愿望清单项目,根据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);
    }

问题是这给了我领域列表,但我需要 RealmResults

有什么建议吗?

4

1 回答 1

1

您可以使用此解决方法:

    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();
于 2016-04-10T22:18:44.190 回答