Używam repozytoriów Spring Data bez żadnych problemów. Gdy próbowałem dodać stronicowanie (używając interfejsu Pageable), działało to poprawnie.Spring Data Hibernate + Pageable: Zwraca puste wyniki
Jednak gdy zwracany zestaw wyników jest mniejszy niż rozmiar strony, wynikiem jest pusta lista.
Poniżej znajduje się mój PageRequest. Domyślne wartości dla index i objectsPerPage wynoszą odpowiednio 0 i 10.
new PageRequest(pageIndex_, objectsPerPage_, new Sort(orders))
Podczas korzystania z zapytania, które zwraca mniej niż 10 wyników, lista wynikowa jest pusta.
ten sposób mogę korzystać z repozytorium w warstwie usługę:
repository.findAll(MySpecification.searchClients(criteria),
myPagingSpecification(criteria.getPageIndex(), criteria.getNumberPerPage(), null))
.getContent();
EDIT 1 znalazłem przyczynę tego jednak ja wciąż szukają rozwiązania lub obejścia.
Long total = QueryUtils.executeCountQuery(getCountQuery(spec));
List<T> content = total > pageable.getOffset() ? query.getResultList() : Collections.<T> emptyList();
Kod ten, usytuowany w klasie SimpleJpaRepository
sprawia select count...
i jeśli liczba jest mniejsza niż offset, zwraca pustą listę.
Dziękuję. Problem polegał na tym, że parametr Zapytanie z moich usług REST to 'page = 1' i zapomniałem, że strony są oparte na 0, ale mój interfejs API nie jest. –