我们有一个用例,用户可以为集合传入任意搜索条件,并希望输出分页。使用 Spring Data 存储库,如果我们提前知道它们可能通过简单扩展 MongoRepository 搜索哪些属性并声明:
Page<Thing> findByFooAndBarAndBaz(Type foo, Type bar, Type baz, Pageable page)
但是,如果我们自己生成查询,或者使用 fluent 接口或构造一个 mongo 字符串并将其包装在一个BasicQuery
类中,我无法找到将其放入存储库实例的方法。没有:
Page<Thing> findByQuery(Query q, Pageable page)
我已经能够看到的功能。
我也看不到如何MongoTemplate
使用 Page 抽象来挂钩查询功能。
我希望我不必滚动自己的分页(计算跳过和限制参数,我想这并不难)并直接调用模板,但如果这是最好的选择,我想我可以。