What you want to do is possible with link queries in theory (searching for "country.id"
), however link queries are slow. Also you'd need to concatenate a bunch of or()
predicates together, and I would not risk that with a link query.
I would recommend using the following
public class Drinks extends RealmObject {
@PrimaryKey
private String id;
private String name;
private Country country;
@Index
private String countryId;
}
public class Country extends RealmObject {
@PrimaryKey
private String id;
private String name;
}
And when you set the Country
in your class, you also set the countryId
as country.getId()
.
Once you do that, you can construct such:
RealmQuery<Drinks> drinkQuery = realm.where(Drinks.class);
int i = 0;
for(String id : ids) {
if(i != 0) {
drinkQuery = drinkQuery.or();
}
drinkQuery = drinkQuery.equalTo("countryId", id);
i++;
}
return drinkQuery.findAll();
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…