Valores incoherentes devueltos por la paginación de Spring Boot.
Estoy intentando crear una función que devuelva una lista de un objeto con Page (de Spring Data).
El problema es que los valores devueltos “totalElements” y “totalPages” son incorrectos. Hay 10 elementos, pero totalElements = 110 y totalPages = 2, cuando los 10 elementos entran fácilmente en una página de 100 elementos.
PD: Me veo obligado a utilizar el objeto MongoTemplate en el que no hay una función find que tome un Pageable. Así que estoy obligado a crearlo manualmente.
El código que estoy usando:
PageableExecutionUtils.getPage(orders, pageable, () -> orders.size());
los pedidos son una lista de mis resultados (que son correctos), la página se define como sigue:
Pageable pageable = new PageRequest(pageIndex, numberOfTransactionsPerPage);
Gracias por todo.
davy.ai
Solución para el error de retorno incorrecto de “totalElements” y “totalPages” en el objeto Page de Spring Data
Como experto en TI especializado en Spring Boot, paginación y MongoTemplate, recomiendo la siguiente solución para el problema del retorno incorrecto de “totalElements” y “totalPages” en el objeto Page de Spring Data:
List<order> orders
) que está utilizando para crear el objeto Page sea correcta y contenga solo los elementos deseados.Cree un objeto Pageable con los parámetros correctos. Por ejemplo:
getPage
dePageableExecutionUtils
, utilice el constructor de la clasePageImpl
para crear manualmente el objeto Page:Aquí,
orders
es la lista de pedidos,pageable
es el objeto Pageable yorders.size()
es el número total de elementos.ordersPage
para acceder al número correcto total de elementos y al número correcto total de páginas:Esto le dará los valores correctos para “totalElements” y “totalPages”.
Espero que esta solución le ayude a resolver el problema. Háganme saber si tienen alguna pregunta.