【发布时间】:2014-10-04 20:51:51
【问题描述】:
Objectify 的 SimpleQuery.endAt() 的确切语义是什么?文档说它“在指定的光标处结束查询结果”(https://code.google.com/p/objectify-appengine/source/browse/src/main/java/com/googlecode/objectify/cmd/SimpleQuery.java?r=a7402d1a9308fbb7b9fd6cb687e43be091d1bcb0#73),可以用两种方式解释。
假设光标指向结果 C,我将查询限制设置为 X。endAt() 会返回 [C-X, C] 或 [0, min(X,C)] 范围内的结果吗?也就是说,是从光标的X结果开始,一直在光标处结束,还是一直从头开始?
编辑: 文档让我认为它会是前者,但我在实践中观察到的是后者的行为。这意味着要正确实现搜索结果的分页,必须跟踪所有游标,而不仅仅是两个最近的游标。这很好,但我认为文档应该更明确一点。
【问题讨论】:
标签: objectify