From ddee2fbb12c8ebe563094d3318f7bdb0501500ae Mon Sep 17 00:00:00 2001 From: Oliver Gierke Date: Wed, 8 Oct 2014 07:03:47 +0200 Subject: [PATCH] DATAMONGO-1057 - Polishing. Slightly tweaked the changes in SlicedExecution to simplify the implementation. We now apply the given pageable but tweak the limit the query uses to peek into the next page. Original pull request: #226. --- .../data/mongodb/repository/query/AbstractMongoQuery.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/repository/query/AbstractMongoQuery.java b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/repository/query/AbstractMongoQuery.java index b65104660..a5633899d 100644 --- a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/repository/query/AbstractMongoQuery.java +++ b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/repository/query/AbstractMongoQuery.java @@ -233,8 +233,10 @@ public abstract class AbstractMongoQuery implements RepositoryQuery { MongoEntityMetadata metadata = method.getEntityInformation(); int pageSize = pageable.getPageSize(); - List result = operations.find(query.skip(pageable.getOffset()).limit(pageSize + 1).with(pageable.getSort()), - metadata.getJavaType(), metadata.getCollectionName()); + // Apply Pageable but tweak limit to peek into next page + Query modifiedQuery = query.with(pageable).limit(pageSize + 1); + + List result = operations.find(modifiedQuery, metadata.getJavaType(), metadata.getCollectionName()); boolean hasNext = result.size() > pageSize;