我有一个相当简单的问题,但似乎无法找到答案。我有3个领域对象 - 月,日和目标。月份包含天数列表,每天包含目标列表。这是简化版本:
class Month extends RealmObject {
RealmList<Day> days;
}
class Day extends RealmObject {
RealmList<Goal> goals;
}
class Goal extends RealmObject {
//some data
}
如何查询属于特定月份的目标?
那是 - 我可以获得特定月份的天数列表,但现在从那个天数列表中我需要提取它们包含的所有目标,并使用查询。感谢。
答案 0 :(得分:0)
模型看起来像:
class Month extends RealmObject {
String name;
RealmList<Day> days;
}
class Day extends RealmObject {
String name;
RealmList<Goal> goals;
@LinkingObjects("days")
final RealmResults<Month> month = null;
}
class Goal extends RealmObject {
String name;
@LinkingObjects("goals")
final RealmResults<Day> day = null;
}
查询将如下:
RealmResults<Goal> = realm
.where(Goal.class)
.equalTo("day.month.name", "august")
.findAll();
如果您有100个月,每个都有100天,每个目标有100个目标(总共100万个目标),您的查询将在Realm中执行约300毫秒,在OrmLite(SQLite ORM)中执行约900毫秒。我在OnePlus 3T上进行了测试。