springBoot + easyui + spring data JPA implementar paginación

  Después de innumerables intentos, finalmente me di cuenta de la función de paginación y experimenté el dolor de ser un programador. 
¡Es fácil implementar la búsqueda en la recepción de easyui! ! El empaque es genial. . ¡Aquí solo presentamos el gran pozo encontrado en el fondo! !

Spring data JPA tiene soporte perfecto para paginación y clasificación de consultas. Al implementar la paginación, debe heredar PagingAndSortingRepository.

Un método se define en XxxRepository.java. Por ejemplo:
Page<Department> findById(Integer id, Pageable pageable);
  Pageablees una interfaz definida en la biblioteca Spring Data, la interfaz es una abstracción de toda la información relacionada con la paginación. A través de esta interfaz, podemos obtener toda la información relacionada con la paginación (como pageNumber, pageSize, etc.), para que Jpa pueda obtener una declaración SQL con información de paginación a través del parámetro pageable.
  PageTambién es una interfaz proporcionada por Spring Data. Esta interfaz representa una parte de la recopilación de datos y sus datos de parte siguiente relacionados, datos totales y otra información relacionada. A través de esta interfaz, podemos obtener la información general de los datos (datos totales, páginas totales ...) y Información sobre datos actuales (recopilación de datos actuales, número actual de páginas, etc.)

   Spring Data Jpa nos ayudará a extender la declaración Sql a través de convenciones de nomenclatura, también nos ayudará a manejar parámetros de tipo Pageable, convertir parámetros paginables en condiciones en declaraciones SQL, y al mismo tiempo, también nos ayudará a lidiar con el valor de retorno de type Page Cuando se encuentra que el tipo de valor de retorno es Página, Spring Data Jpa colocará la información general de los datos, la información de los datos actuales y la información de paginación en el valor de retorno. De esta forma, podemos llevar a cabo convenientemente consultas de paginación personalizadas.
El método en servicio:
public Page<T> findAllT(Pageable pageable){
    return this.xxxRepository.findAll(pageable);
}
public  Page<T> findById(Integer id,Pageable pageable){
    return this.xxxRepository.findById(id,pageable);
}```
#####controller中的方法(用的springBoot技术,controller上有@RestController注解):

// Todas las páginas muestran
@RequestMapping (value = "/ displayAll", method = RequestMethod.GET) Public
Map

El problema:

1 、

Mensaje de error

El error que se muestra es porque no hay longitud y el modelo devuelto no es compatible con el modelo requerido.
2. Después de
  escribir el método en segundo plano (el código en este momento es: map.put ("filas", lista);), el primer plano no se muestra. Ejecute la URL correspondiente solo para obtener una captura de pantalla parcial de los datos JSON de la siguiente manera:

Captura de pantalla parcial
Como se muestra en la figura anterior, se puede ver que el método de paginación en el fondo es correcto, y ¿por qué no puede obtener datos JSON?

La razón es que el modelo que devuelve datos JSON no coincide con el modelo requerido por easyui datagrid (datagrid requiere una matriz de modelos o un objeto que contenga filas y total). Ver foto abajo

El modelo de datos requerido por la paginación easyui
El modelo de los datos JSON que obtuvimos es el siguiente:

 {
"total":15,
"rows":{
"content":[
{"id":1,"Name":"XXXXX","school":{"id":1,"schoolName":"XXXX","departments":[{"id":1,"departmentName":"XXXXX","school":1},","school":3},{"id":15,"departmentName":"jjjj","school":3}]}},{"id":9,"departmentName":"xxx","school":1},{"id":10,"departmentName":"xxx","school":2},{"id":13,"departmentName":"xxx","":1}
],
"last":false,
"totalPages":2,
"totalElements":15,
"number":0,
"size":10,
"sort":null,
"first":true,
"numberOfElements":10
}
}

  Las filas que obtenemos no son una matriz ([]), es un objeto ({}), y su propiedad de contenido es el modelo que necesitamos. Por lo tanto, modifique map.put ("rows", list.getContent ()) en el controlador; finalmente se muestra con éxito.
Si hay algo mal, ¡indícalo! ! !

10 artículos originales publicados · Me gusta 16 · Visitantes más de 10,000

Supongo que te gusta

Origin blog.csdn.net/xl132598798/article/details/61614634
Recomendado
Clasificación