Android领域查询关系

瓦尔·奥卡福

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

两种方法都很好。你其实可以转换RealmListRealmResults通过realmList.where().findAll()

RealmCollection最近将添加另一个更好的抽象对象,以更好地支持此用例,请参见http://github.com/realm/realm-java/pull/2345

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章