I have a Query with Pageable:
Query query = new Query().with(new PageRequests(page, size))
How can I execute it with MongoTemplate ? I don't see a single method returning Page<T>
.
It's true that the MongoTemplate
doesn't have findXXX
with Pageables.
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));
Like in the original Spring Data Repository, the PageableExecutionUtils
will do a count request and wrap it into a nice Page
for you.
Here you can see that spring is doing the same.