Sto utilizzando gli archivi Spring Data senza problemi. Quando ho provato ad aggiungere Paging (usando l'interfaccia Pageable) ha funzionato OK.Spring Data Hibernate + Pageable: restituisce risultati vuoti
Tuttavia, quando il set di risultati restituito è inferiore alla dimensione della pagina, il risultato è Elenco vuoto.
Quello che segue è il mio PageRequest. I valori predefiniti per index e objectsPerPage sono 0 e 10 rispettivamente.
new PageRequest(pageIndex_, objectsPerPage_, new Sort(orders))
Quando lo utilizza con una query che restituisce meno di 10 risultati, l'elenco risultante è vuoto.
Questo è come io uso il repository nel livello di servizio:
repository.findAll(MySpecification.searchClients(criteria),
myPagingSpecification(criteria.getPageIndex(), criteria.getNumberPerPage(), null))
.getContent();
EDIT 1 ho trovato la causa di questo, comunque sto ancora cercando una soluzione o una soluzione.
Long total = QueryUtils.executeCountQuery(getCountQuery(spec));
List<T> content = total > pageable.getOffset() ? query.getResultList() : Collections.<T> emptyList();
Questo codice, che si trova nella classe SimpleJpaRepository
rende select count...
e se il numero è inferiore l'offset, restituisce una lista vuota.
Grazie. Il problema era che il parametro Query dei miei servizi REST era 'page = 1' e avevo dimenticato che le pagine sono basate su 0, ma la mia API no. –