Estou usando dados da primavera e meu DAO parece
public interface StudentDAO extends JpaRepository<StudentEntity, Integer> {
public findAllOrderByIdAsc(); // I want to use some thing like this
}
No código acima, a linha comentada mostra minha intenção. O Spring Data fornece funcionalidade embutida para usar esse método para localizar todos os pedidos de registros por alguma coluna com ASC / DESC?
spring
spring-data
spring-data-jpa
Prashant Shilimkar
fonte
fonte
List<StudentEntity> findAllByOrderByIdAsc();
. Adicionando um tipo de retorno e remover o modificador público redundante também é uma boa idéia;)By
antes daOrderBy
palavra - chave faz toda a diferença.By
na frenteOrderBy
. A documentação não fala sobre isso .AFAIK, acho que isso não é possível com uma consulta de nomenclatura direta de método. No entanto, você pode usar o mecanismo de classificação incorporado, usando a
Sort
classe O repositório possui umfindAll(Sort)
método para o qual você pode passar uma instânciaSort
. Por exemplo:fonte
findAll()
do tipoCrudRepository<>
não é aplicável para os argumentos (Ordenar)JpaRepository<>
se desejar usar o exemplo acima.Consulte a JPA de dados da primavera - documentação de referência, seção 5.3. Métodos de consulta , especialmente na seção 5.3.2. Criação de consulta , na " Tabela 3. Palavras- chave suportadas nos nomes dos métodos " (links a partir de 2019-05-03).
Eu acho que tem exatamente o que você precisa e a mesma consulta que você declarou que deve funcionar ...
fonte
Maneira simples:
Fonte: https://www.baeldung.com/spring-data-sorting
fonte
Sim, você pode classificar usando o método de consulta no Spring Data.
Ex: ordem crescente ou decrescente usando o valor do campo id.
Código:
solução alternativa:
Classificação de dados do Spring: Classificação
fonte
Eu tento neste exemplo mostrar um exemplo completo para personalizar as suas classificações OrderBy
você usará este exemplo: Um método para criar dinamicamente um objeto nessa instância de Sort:
fonte
Combinando todas as respostas acima, você pode escrever código reutilizável com BaseEntity:
O objeto DAO sobrecarrega o método findAll - basicamente, ainda usa
findAll()
StudentEntity
estendeBaseEntity
que contém campos repetíveis (talvez você também queira classificar por ID)Finalmente, o serviço e uso dos
SORT_BY_CREATED_AT_DESC
quais provavelmente serão usados não apenas noStudentService
.fonte