Pagination with mongoTemplate(使用 mongoTemplate 进行分页)
问题描述
我有一个带有 Pageable 的查询:
I have a Query with Pageable:
Query query = new Query().with(new PageRequests(page, size))
如何使用 MongoTemplate 执行它?我没有看到一个方法返回 Page<T>.
How can I execute it with MongoTemplate ? I don't see a single method returning Page<T>.
推荐答案
确实MongoTemplate没有findXXX with Pageables.
It's true that the MongoTemplate doesn't have findXXX with Pageables.
但是你可以使用 Spring Repository PageableExecutionUtils 来实现.
But you can use the Spring Repository PageableExecutionUtils for that.
在您的示例中,它看起来像这样:
In your example it would look like this:
Pageable pageable = new PageRequests(page, size);
Query query = new Query().with(pageable);
List<XXX> list = mongoTemplate.find(query, XXX.class);
return PageableExecutionUtils.getPage(
list,
pageable,
() -> mongoTemplate.count(Query.of(query).limit(-1).skip(-1), XXX.class));
就像在原始的 Spring Data Repository 中一样,PageableExecutionUtils 将执行一个计数请求并将其包装到一个漂亮的 Page 中.
Like in the original Spring Data Repository, the PageableExecutionUtils will do a count request and wrap it into a nice Page for you.
这里你可以看到spring也在做同样的事情.
Here you can see that spring is doing the same.
这篇关于使用 mongoTemplate 进行分页的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:使用 mongoTemplate 进行分页
- Eclipse 插件更新错误日志在哪里? 2022-01-01
- Spring Boot连接到使用仲裁器运行的MongoDB副本集 2022-01-01
- C++ 和 Java 进程之间的共享内存 2022-01-01
- Jersey REST 客户端:发布多部分数据 2022-01-01
- value & 是什么意思?0xff 在 Java 中做什么? 2022-01-01
- 如何使用WebFilter实现授权头检查 2022-01-01
- Java包名称中单词分隔符的约定是什么? 2022-01-01
- 将log4j 1.2配置转换为log4j 2配置 2022-01-01
- 从 finally 块返回时 Java 的奇怪行为 2022-01-01
- Safepoint+stats 日志,输出 JDK12 中没有 vmop 操作 2022-01-01
