Skip to content

Commit f430011

Browse files
Fix PagingAndSortingRepository fails for Pageable.unpaged() (#255)
1 parent b1e9bfe commit f430011

File tree

2 files changed

+21
-7
lines changed

2 files changed

+21
-7
lines changed

src/main/java/com/arangodb/springframework/repository/SimpleArangoRepository.java

+7-2
Original file line numberDiff line numberDiff line change
@@ -351,7 +351,7 @@ private <S extends T> ArangoCursor<T> findAllInternal(final Pageable pageable, @
351351
buildFilterClause(example, bindVars), buildPageableClause(pageable, "e"));
352352
arangoOperations.collection(domainClass);
353353
return arangoOperations.query(query, bindVars,
354-
pageable != null && pageable.isPaged() ? new AqlQueryOptions().fullCount(true) : null, domainClass);
354+
pageable != null ? new AqlQueryOptions().fullCount(true) : null, domainClass);
355355
}
356356

357357
private <S extends T> String buildFilterClause(final Example<S> example, final Map<String, Object> bindVars) {
@@ -366,7 +366,12 @@ private <S extends T> String buildFilterClause(final Example<S> example, final M
366366
private String buildPageableClause(final Pageable pageable, final String varName) {
367367
if (pageable == null) return "";
368368
Sort persistentSort = AqlUtils.toPersistentSort(pageable.getSort(), mappingContext, domainClass);
369-
Pageable persistentPageable = PageRequest.of(pageable.getPageNumber(), pageable.getPageSize(), persistentSort);
369+
Pageable persistentPageable;
370+
if (pageable.isPaged()) {
371+
persistentPageable = PageRequest.of(pageable.getPageNumber(), pageable.getPageSize(), persistentSort);
372+
} else {
373+
persistentPageable = pageable;
374+
}
370375
return AqlUtils.buildPageableClause(persistentPageable, varName);
371376
}
372377

src/test/java/com/arangodb/springframework/repository/ArangoRepositoryTest.java

+14-5
Original file line numberDiff line numberDiff line change
@@ -13,12 +13,8 @@
1313
import java.util.Optional;
1414

1515
import org.junit.Test;
16-
import org.springframework.data.domain.Example;
17-
import org.springframework.data.domain.ExampleMatcher;
16+
import org.springframework.data.domain.*;
1817
import org.springframework.data.domain.ExampleMatcher.StringMatcher;
19-
import org.springframework.data.domain.Page;
20-
import org.springframework.data.domain.PageRequest;
21-
import org.springframework.data.domain.Sort;
2218

2319
import com.arangodb.springframework.testdata.Address;
2420
import com.arangodb.springframework.testdata.Customer;
@@ -515,4 +511,17 @@ public void exampleWithRefPropertyTest() {
515511
assertEquals(customer, retrieved);
516512
}
517513

514+
@Test
515+
public void findAllUnpagedPageableTest() {
516+
final List<Customer> toBeRetrieved = new LinkedList<>();
517+
toBeRetrieved.add(new Customer("Dhiren", "Upadhyay", 30));
518+
toBeRetrieved.add(new Customer("Ashim", "Upadhyay", 28));
519+
toBeRetrieved.add(new Customer("Lokendr", "Upadhyay", 24));
520+
repository.saveAll(toBeRetrieved);
521+
final Page<Customer> retrievedPage = repository.findAll(Pageable.unpaged());
522+
assertEquals(toBeRetrieved.size(), retrievedPage.getTotalElements());
523+
assertEquals(toBeRetrieved.size(), retrievedPage.getSize());
524+
assertEquals(toBeRetrieved, retrievedPage.getContent());
525+
}
526+
518527
}

0 commit comments

Comments
 (0)