sql >> Base de Datos >  >> RDS >> Mysql

¿Cuál es la alternativa de la cláusula LIMIT en JPQL?

Está utilizando JPQL, que no admite la limitación de resultados como este. Cuando use JPQL nativo, debe usar setMaxResults para limitar los resultados.

Sin embargo, está utilizando Spring Data JPA, que básicamente lo hace bastante fácil de hacer. Consulte aquí en la guía de referencia sobre cómo limitar los resultados en función de una consulta. En su caso, el siguiente método de búsqueda haría exactamente lo que desea.

findFirstByOrderById();

También podría usar un Pageable argumento con su consulta en lugar de un LIMIT cláusula.

@Query("SELECT s FROM Students s ORDER BY s.id DESC")
List<Students> getLastStudentDetails(Pageable pageable);

Luego, en su código de llamada, haga algo como esto (como se explica aquí en la guía de referencia).

getLastStudentDetails(PageRequest.of(0,1));

Ambos deberían arrojar el mismo resultado, sin necesidad de recurrir a SQL simple.