From c683813a7a1180fb66ca3c5a344514707bf9208f 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;