【发布时间】:2017-06-02 05:32:59
【问题描述】:
我正在尝试找出以 RealmResult 作为其字段之一来设置 RealmObject 的最佳方法。
例如,假设我有两个 RealmObject,Goal 和 Achievement。目标对象包含定义用户想要跟踪的成就查询的字段(例如,成就创建的日期范围、成就类型等),并具有从这些成就中提取统计数据的自定义方法。
Goal 包含此 RealmResult 成就的最佳方式是什么?以下是我想到的一些方法:
- 在 Goal 中有一个持久化的 RealmList 字段,并在更改会更改结果查询的字段时对其进行更新。但是,如果将新的成就添加到领域,该 RealmList 将如何更新?
- 在目标内的
RealmResult<Achievement>字段上使用@Ignore注释。在目标中使用 mResult 的任何地方,首先检查是否为空,如果需要,重新查询。如果我使用 RecyclerView 之类的东西重新获取getItem()中的对象,这似乎我会做很多不必要的查询。 - 拥有一个包含 Goal 对象和
RealmResult<Achievement>作为字段的包装类。向 Goal 添加一个侦听器,以便在相关字段更改时可以重新查询 RealmResult。
我倾向于最后一个作为保持有效 RealmResult 的最干净的方式。我是否错过了一种更简单的方法来实现这一点?
【问题讨论】:
-
让我想起了this idea,但它在“想法积压”中,所以不会很快发生。
-
谢谢@EpicPandaForce!假设我们不会很快得到@Query,你知道实现这一目标的最佳方法是什么吗?
-
就我个人而言,我可能只是有一个类似于
RealmResults<Achievement> achievements = achievementDao.findForGoal(realm, goalId);... 的抽象...但这只是我。