Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Qual é a alternativa da cláusula LIMIT em JPQL?


Você está usando JPQL que não suporta resultados limitantes como este. Ao usar JPQL nativo, você deve usar setMaxResults limitar os resultados.

No entanto, você está usando o Spring Data JPA, o que basicamente torna isso muito fácil de fazer. Veja aqui no guia de referência sobre como limitar os resultados com base em uma consulta. No seu caso, o método find faria exatamente o que você deseja.
findFirstByOrderById();

Você também pode usar um Pageable argumento com sua consulta em vez de um LIMIT cláusula.
@Query("SELECT s FROM Students s ORDER BY s.id DESC")
List<Students> getLastStudentDetails(Pageable pageable);

Em seguida, em seu código de chamada, faça algo assim (como explicado aqui no guia de referência).
getLastStudentDetails(PageRequest.of(0,1));

Ambos devem produzir o mesmo resultado, sem a necessidade de recorrer a SQL simples.