objectBox复用查询query

724 阅读1分钟

有时候我们会需要复用查询,比如本地搜索,用户输入的关键字可能时刻在变化,每次都创建一个query其实还是不太好的。这时候就要用到复用query了。

1.创建query

val query = ObjectBox.boxStore.boxFor(AddressEntity::class.java).query()
        .contains(AddressEntity_.address, "")
        .order(AddressEntity_.time)
        .build()

这里创建了一个query,但是条件里传入的值是空的。

2.查询的时候设置对应的值

val list = query.setParameter(AddressEntity_.address, key).find()

这里就直接调用setParameter方法给缺失的值赋值,然后调用查询触发方法。

其他:

  • 复用query还可以用来做分页加载
  • 还可以给查询字段设置别名

参考资料: