Mysql
 sql >> Database >  >> RDS >> Mysql

Qual è l'alternativa alla clausola LIMIT in JPQL?

Stai usando JPQL che non supporta la limitazione di risultati come questo. Quando usi JPQL nativo dovresti usare setMaxResults per limitare i risultati.

Tuttavia stai usando Spring Data JPA che sostanzialmente lo rende abbastanza facile da fare. Vedi qui nella guida di riferimento su come limitare i risultati in base a una query. Nel tuo caso, il seguente metodo trova farebbe esattamente quello che vuoi.

findFirstByOrderById();

Potresti anche usare un Pageable argomento con la tua query invece di un LIMIT clausola.

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

Quindi nel codice di chiamata fai qualcosa del genere (come spiegato qui nella guida di riferimento).

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

Entrambi dovrebbero produrre lo stesso risultato, senza dover ricorrere a un semplice SQL.