领域获取10个对象,它们在组中具有最大值

时间:2015-03-30 12:39:36

标签: android realm jdbcrealm

此时我从ORMLite数据库迁移到Realm数据库 我能够毫无问题地翻译大多数查询,但在这种情况下,我不知道它应该是什么样子。有什么建议吗?

我用字段获得了Realm对象:

EpisodeId as Integer
serieId as Integer
„watchedDate” as Date

现在我想查询最近10次观看的serieId。 在SQL中它应该喜欢它(语义可能是错误的):

  Select *, max(watched_date) as 'maxdate' from watched_entity group by serieId  order by 'maxdate' LIMIT 10

1 个答案:

答案 0 :(得分:0)

Realm暂时不支持LIMIT,并且有充分理由因为RealmResults 您的数据副本,这意味着在携带此类引用时没有巨大的内存损失。只需迭代你的RealmResults并手动选择前10个元素。

关于您的模型的另一个注释。请记住,Realm不是关系数据库,它使用链接来指定对象之间的关系。 Realm中更健全的方法就像(伪代码):

class Serie extends RealmObject
 - String name
 - etc...

class Episode extends RealmObject
 - Serie serie
 - boolean watched
 - Date lastWatched
 - etc...

这使查询更容易编写。

此外,仍然针对您的具体查询,我们目前仍然缺乏对GROUPBY的支持,因此您必须手动解决该系列,但我们正在考虑将来允许这样做的方法。