我有一个名为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;

我的问题是,编写一个领域查询,返回属于特定todolist的任务列表的最佳方法是什么。这是我的方法。
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
两种方法都很好。实际上,您可以通过RealmListRealmResults转换为realmList.where().findAll()
最近将添加另一个更好的抽象对象RealmCollection来更好地支持这个用例,请参见http://github.com/realm/realm-java/pull/2345

07-28 03:17
查看更多