我有一个相当简单的问题,但似乎找不到答案。我有三个领域对象-月,日和目标。月份包含天数列表,而每一天包含目标列表。这是简化的版本:
class Month extends RealmObject {
RealmList<Day> days;
}
class Day extends RealmObject {
RealmList<Goal> goals;
}
class Goal extends RealmObject {
//some data
}如何查询属于特定月份的目标?
也就是说,我可以获得特定月份的天数列表,但是现在我需要从这个日期列表中提取出它们包含的所有目标,并使用一个查询。谢谢。
发布于 2017-08-06 08:59:56
你可以利用逆关系:
模型的外观如下:
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万个目标),那么您的查询将在约300 ms和约900 ms内使用OrmLite (SQLite ORM)执行。我在OnePlus 3T上测试了这个。
https://stackoverflow.com/questions/44353087
复制相似问题