gpt4 book ai didi

android - 使用 List 查询 Realm

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:00:46 25 4
gpt4 key购买 nike

我正在使用 Realm 在 Android 上存储我的数据。很棒的框架!现在我遇到的唯一问题是:

我的数据库中有一个带有国家/地区 ID 的数组列表字符串。

现在我检索包含与国家/地区关系的饮料。

有没有一种方法可以像这样进行查询:

String [] ids;

realm.where(Drinks.class).equalsTo("country.id", ids);

类似的东西?

或者我真的需要做一个查询来获取所有饮料然后手动过滤列表吗?

编辑:

我的类(class):

public class Drinks extends RealmObject {
@PrimaryKey
private String id;
private String name;
private Country country;
}

public class Country extends RealmObject {
@PrimaryKey
private String id;
private String name;
}

最佳答案

理论上链接查询(搜索"country.id")是可以实现的,但是链接查询很慢。此外,您还需要将一堆 or() 谓词连接在一起,我不会冒险使用链接查询。

我建议使用以下内容

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;
}

并且当您在类中设置 Country 时,您还将 countryId 设置为 country.getId()

一旦你这样做了,你就可以构建这样的:

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

关于android - 使用 List 查询 Realm ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32066648/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com