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 ef61aae62..611bd0f9f 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 @@ -260,7 +260,7 @@ public abstract class AbstractMongoQuery implements RepositoryQuery { long count = operations.count(query, metadata.getCollectionName()); count = overallLimit != 0 ? Math.min(count, query.getLimit()) : count; - boolean pageableOutOfScope = pageable.getOffset() > query.getLimit(); + boolean pageableOutOfScope = pageable.getOffset() > count; if (pageableOutOfScope) { return new PageImpl(Collections.emptyList(), pageable, count); diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/AbstractPersonRepositoryIntegrationTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/AbstractPersonRepositoryIntegrationTests.java index b07103f67..c7be14f9f 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/AbstractPersonRepositoryIntegrationTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/AbstractPersonRepositoryIntegrationTests.java @@ -969,6 +969,19 @@ public abstract class AbstractPersonRepositoryIntegrationTests { assertThat(result.getContent().size(), is(0)); } + /** + * @see DATAMONGO-996, DATAMONGO-950 + */ + @Test + public void gettingNonFirstPageWorksWithoutLimitBeingSet() { + + Page slice = repository.findByLastnameLike("Matthews", new PageRequest(1, 1)); + + assertThat(slice.getContent(), hasSize(1)); + assertThat(slice.hasPrevious(), is(true)); + assertThat(slice.hasNext(), is(false)); + } + /** * Ignored for now as this requires Querydsl 3.4.1 to succeed. *