2017-05-19 111 views
1

在Realm android中有一种方法可以从紧密绑定中的表中获取List。这是这样的:具有限制的领域查询

select * from POST where id<50 AND id>10 

其境界表示为:

realm.where(Post.class) 
    .greaterThanOrEqualTo("id", 10) 
    .lessThan("id", 50) 
    .findAllSorted("id", false); 

这里限制为10-50五月包含40个行事业“身份证”是自动增量的主键。

现在我关心的是如何在这个领域Query上添加一个LIMIT?我的查询将是这样的:

select * from POST where id<50 ORDER BY id DESC LIMIT 15 

相关链接: thisthisthis

+1

请注意,而LIMIT增强正在考虑,它在Realm中几乎没有买到任何东西。在SQL情况下,它是控制内存和加载时间的有效方法。在Realm中,所有数据iis *已经在内存中*。查询只是创建一个对它的引用。 –

回答

2

使用List.subList方法:

例如,list.subList(0, 15)

+0

感谢您的回答。境界是否直接提供任何方法来做到这一点? –

+1

@ Md.SajedulKarim,据我所知,没有。你可以阅读这个github线程:https://github.com/realm/realm-java/issues/544 – Vyacheslav

+0

正如@Vyacheslav指出的,不支持“LIMIT”。在SQL中,使用'LIMIT'来限制从数据库加载的数据量(从磁盘到内存复制行到应用程序)。领域是零拷贝,所以你没有看到相同的内存压力。 – geisshirt