Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

[Dúvida] Ordenação ascendente/descendente por atributo

Olá!

Durante os testes percebi que é possível ordenar a busca por mais de um atributo.

Ex.: http://localhost:8080/medicos?ordem=especialidade,nome,asc

Porém, o Spring retorna erro ao tentar definir uma forma ascendente/descendente para cada atributo.

Ex.: http://localhost:8080/medicos?ordem=especialidade,desc,nome,asc

{
    "timestamp": "2023-01-29T13:26:06.857+00:00",
    "status": 500,
    "error": "Internal Server Error",
    "trace": "org.springframework.data.mapping.PropertyReferenceException: No property 'desc' found for type 'Medico'\r\n\tat org.springframework.data.mapping.PropertyPath.<init>(PropertyPath.java:90)\r\n\tat org.springframework.data.mapping.PropertyPath.create(PropertyPath.java:423)\r\n\tat org.springframework.data.mapping.PropertyPath.create(PropertyPath.java:399)\r\n\tat org.springframework.data.mapping.PropertyPath.lambda$from$0(PropertyPath.java:352)\r\n\tat java.base/java.util.concurrent.ConcurrentMap.computeIfAbsent(ConcurrentMap.java:330)\r\n\tat
    ...
org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n\tat java.base/java.lang.Thread.run(Thread.java:833)\r\n",
    "message": "No property 'desc' found for type 'Medico'",
    "path": "/medicos"
}

Existe alguma forma de fazer esse tipo de ordenação?

Grato.

2 respostas
solução!

Oi Caio!

O jeito certo é repetir o parâmetro sort para cada campo que desejar ordenar:

http://localhost:8080/medicos?sort=especialidade,desc&sort=nome,asc

Bons estudos!

Muito obrigado, Rodrigo!

Atte.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software