Estoy usando datos de primavera y mi DAO parece
public interface StudentDAO extends JpaRepository<StudentEntity, Integer> {
public findAllOrderByIdAsc(); // I want to use some thing like this
}
En el código anterior, la línea comentada muestra mi intención. ¿Puede Spring Data proporcionar una funcionalidad incorporada para usar dicho método para encontrar todos los registros ordenados por alguna columna con ASC / DESC?
spring
spring-data
spring-data-jpa
Prashant Shilimkar
fuente
fuente
List<StudentEntity> findAllByOrderByIdAsc();
. Agregar un tipo de retorno y eliminar el modificador público redundante también es una buena idea;)By
antes de laOrderBy
palabra clave hace toda la diferencia.By
al frenteOrderBy
. La documentación no dice nada al respecto .AFAIK, no creo que esto sea posible con una consulta de nomenclatura de método directo. Sin embargo, puede usar el mecanismo de clasificación incorporado, usando la
Sort
clase. El repositorio tiene unfindAll(Sort)
método al que puede pasar una instanciaSort
. Por ejemplo:fuente
findAll()
en el tipoCrudRepository<>
no es aplicable para los argumentos (Ordenar)JpaRepository<>
si desea utilizar el ejemplo anterior.Consulte la JPA de Spring Data: documentación de referencia, sección 5.3. Métodos de consulta , especialmente en la sección 5.3.2. Creación de consultas , en la " Tabla 3. Palabras clave admitidas dentro de los nombres de los métodos " (enlaces a partir del 2019-05-03).
Creo que tiene exactamente lo que necesitas y la misma consulta que dijiste debería funcionar ...
fuente
Manera simple:
Fuente: https://www.baeldung.com/spring-data-sorting
fuente
Sí, puede ordenar utilizando el método de consulta en Spring Data.
Ej: orden ascendente u orden descendente utilizando el valor del campo id.
Código:
solución alternativa:
Clasificación de datos de primavera: clasificación
fuente
Intento en este ejemplo mostrarle un ejemplo completo para personalizar su orden
usará este ejemplo: Un método para construir dinámicamente un objeto que instancia de Ordenar:
fuente
Combinando todas las respuestas anteriores, puede escribir código reutilizable con BaseEntity:
El objeto DAO sobrecarga el método findAll - básicamente, todavía usa
findAll()
StudentEntity
se extiende,BaseEntity
que contiene campos repetibles (tal vez también desee ordenar por ID)Finalmente, el servicio y el uso de los
SORT_BY_CREATED_AT_DESC
cuales probablemente se utilizarán no solo en elStudentService
.fuente