如何基于深嵌套对象内的字段对领域进行排序?

时间:2016-08-23 10:28:57

标签: java android realm

我需要根据驻留在深层嵌套对象中的字段对结果进行排序和获取结果。

我需要对基于String Id中的RealmObject D字段排序的RealmObject A上运行的搜索查询的最终结果进行排序。

将以下内容视为RealmObject结构:

RealmObject A
- RealmObject B
- ..
- ..

RealmObject B
- RealmList<RealmObject C>
- ..
- ..

RealmObject C
- RealmList<RealmObject D>
- ..
- ..

RealmObject D
- String Id
- ..
- ..

提前致谢!

2 个答案:

答案 0 :(得分:1)

遗憾的是,尚未支持。这里有一个问题跟踪:https://github.com/realm/realm-java/issues/672

如上所述。到目前为止,它已经成为底层核心的技术限制,但是,最近对此进行了补充,所以现在我们只需要找到在公共API中添加支持的周期。

在此之前,唯一的解决方法是将Item D中的字段添加到Item A

答案 1 :(得分:0)

Issue #672已通过PR #3834

解决。

第一
上面的示例基于List中的字段进行排序可能会产生误导,因为这不是一件有效的事情。 引用克里斯蒂安·梅尔基奥:

  

您无法基于子列表对父对象进行排序,因为它实际上没有任何意义,因为您要对列表中的哪个元素进行排序? src

因此,要回答最初的问题(假设不涉及任何列表),它将看起来像这样:

*1%