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;