如何在一次查询中查询RealmObject的RealmList字段

2022-08-02 00:00:00 database android java realm

假设我有一门课:

public class Company extends RealmObject {

    private String companyId;
    private RealmList<CompanyMember> companyMembers;

}

CompanyMember类的位置:

public class CompanyMember extends RealmObject {

    private String id;
    private String name;

}

是否可以在领域中使用单个查询,基于CompanyMember对象的‘name’字段搜索特定Company对象的‘pananyMembers’列表?

例如,在Company 123的CompanyMember列表中搜索名称包含‘abc’的所有CompanyMember,并返回这些匹配的CompanyMembers的列表。

目前我正在从领域中检索整个公司,并反复搜索成员列表以查找匹配项,但这似乎不是最佳方法。


解决方案

是,就像这样:

Company company = realm.where(Company.class).equalTo("companyId", "123" ).findFirst();
RealmList<CompanyMember> companyMembers = company.getCompanyMembers();
RealmResults<CompanyMember> filteredMembers = companyMembers.where().contains("name", "abc").findAll();

相关文章