Android Realm 一对多关系、查询

标签 android realm relationship one-to-many realm-mobile-platform

我有两门课:

public class Employee extends RealmObject {
    @PrimaryKey
    long id;
    String name
    Department department;

    //getters setters etc.
}

public class Department extends RealmObject {
    @PrimaryKey
    int id;
    String name;

    //getters setters etc.
}

这是一对多的关系。一个部门可以有多名员工。我尝试提出一些疑问。

realm.where(Employee.class).equalTo("department.name", "deptName").findAll()
realm.where(Department.class).equalTo("employee.name", "empName").findAll()

第一个工作正常,第二个有错误:

无效查询:员工未引用类(class)。

如何使第二个起作用?我是否必须在部门类中创建员工的 RealmList?

我想在此查询中获取具有指定名称的员工的所有部门。

最佳答案

Realm 3.5.0+:

public class Employee extends RealmObject {
    @PrimaryKey
    long id;
    String name
    Department department;

    //getters setters etc.
}

public class Department extends RealmObject {
    @PrimaryKey
    int id;
    String name;

    @LinkingObjects("department")
    private final RealmResults<Employee> employees = null;
    //getters setters etc.
}
realm.where(Employee.class).equalTo("department.name", "deptName").findAll()
realm.where(Department.class).equalTo("employees.name", "empName").findAll()

关于Android Realm 一对多关系、查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45780968/

相关文章:

安卓|指定的子项已有父项。您必须先对 child 的 parent 调用 removeView()

android - RecyclerView 使用基于 Realm 的 Adapter 进行拖放

ios - 奇怪的境界记录顺序

php - 创建具有多种关系的 Eloquent 实例?

android - 在mp3或wav中转换或创建音频文件

android - 拖放持久位置

java - Android setOnKeyListener导致ANR(Application Not Responding)提示

android - 在 Android 应用程序中流式传输 AAC 音频

ruby-on-rails - ruby rails : Better approach to delete related models

ruby-on-rails-3 - activerecord,嵌套类别?