RealmQuery与RealmResult

时间:2017-03-24 14:21:37

标签: android realm

RealmQueryRealmResult之间有什么区别?

更具体地说:

RealmQuery我可以使用equalTo进行过滤,但我必须将属性名称作为String传递,这很容易出错。
RealmResultList,因此我可以使用filter方法进行过滤,这样更方便,因为我可以访问属性。

是否存在任何性能或内存影响;

Java代码:

realm.where(realmModel.class).findAll().filter(...)

并且不使用RealmQuerys equalTo()in()方法?

谢谢

1 个答案:

答案 0 :(得分:3)

realm.where(realmModel.class).findAll().filter(...)

filter()来自List<T>接口,这意味着您实际上并未在Realm数据库中执行查询。您只是为filter()返回的每个元素运行findAll(),这是每个元素,而不是由Realm(数据库端)过滤的实际过滤列表。

那,我认为filter(new Predicate() {...仅适用于API 24 +。

如果您不想使用字符串作为字段名称,那么use constants instead

  

是否存在任何性能或内存影响;

在SQL术语中,这相当于SELECT * FROM TABLE并在内存中手动过滤每个元素,而不是SELECT * FROM TABLE WHERE ... - 除了在Realm世界中。