我有一个教师列表,每个教师都包含一个学生对象列表。每个学生都包含他每天必须携带的教科书列表。它看起来像这样:
Teacher {
String teacherName;
RealmList<Student> students = new RealmList<>();
}
Student {
String studentName;
RealmList<SchoolDay> schooldays = new RealmList<>();
}
SchoolDay {
String day;
RealmList<RealmString> schoolbooks;
}
(RealmString 只是原始String
包装为 a RealmObject
)
我想在某一天提取某个学生的教科书列表 - 几个学生可能有相同的教科书,但我只对某一特定学生在某一天(例如,星期日)的书感兴趣。一个学生可能在几位老师的课堂上,但我只对其中一位老师的结果感兴趣,因为每周的书单会因每位老师而异。示例查询数据可能是:
teacher : steven
student : austin
day : sunday
这就是我卡住的地方 - 我如何子查询这个?找到我感兴趣的老师:
RealmResults<Teacher> = realm.where(Teacher.class).equalTo("teacherName", "steven").findAll();
但是,然后我必须对教师运行一个子查询,对学生运行一个子查询——或者更好的是,以某种方式在同一个查询中运行所有这些查询。作为我的最终结果,我想要得到的只是代表那个特定学生的教科书的字符串。我怎样才能做到这一点?