我有一个名为TodoList的Realm对象,它具有RealmList这样的属性。
@PrimaryKey
private int id;
private String title;
private RealmList<Task> tasks;
我在这里任务领域对象
@PrimaryKey
private int id;
private String title;
private boolean completed;
private TodoList todoList;
我的问题是编写一个Realm查询的最佳方法是什么,该查询返回属于特定TodoList的Task列表。这是我的方法。
public RealmResults<Task> getTodoListTasks(int todoListId) {
RealmResults<Task> tasks = mRealm.where(Task.class)
.equalTo("todoList.id", todoListId).findAll();
return tasks;
}
这种方法要求我查询任务表,以查找与给定ID匹配的所有TodoList外键。我希望这样的事情:
public RealmResults<Task> getTodoListTasks2(TodoList list) {
TodoList todoList = mRealm.where(TodoList.class).equalTo("id", list.getId()).findFirst();
RealmResults<Task> tasks = todoList.getTasks();
return tasks;
}
但是,由于我无法将RealmList强制转换为RealmResult,因此无法构建。
使用反向链接查询会容易得多,但是不幸的是,它尚未实现(2016年3月18日),请参见http://github.com/realm/realm-java/issues/607。
两种方法都很好。你其实可以转换RealmList
到RealmResults
通过realmList.where().findAll()
。
RealmCollection
最近将添加另一个更好的抽象对象,以更好地支持此用例,请参见http://github.com/realm/realm-java/pull/2345。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句