Mysql
 sql >> Base de données >  >> RDS >> Mysql

Quelle est l'alternative à la clause LIMIT dans JPQL ?

Vous utilisez JPQL qui ne prend pas en charge la limitation des résultats comme celui-ci. Lorsque vous utilisez JPQL natif, vous devez utiliser setMaxResults pour limiter les résultats.

Cependant, vous utilisez Spring Data JPA, ce qui le rend assez facile à faire. Voir ici dans le guide de référence sur la façon de limiter les résultats basés sur une requête. Dans votre cas, la méthode de recherche suivante ferait exactement ce que vous voulez.

findFirstByOrderById();

Vous pouvez également utiliser un Pageable argument avec votre requête au lieu d'un LIMIT clause.

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

Ensuite, dans votre code d'appel, faites quelque chose comme ceci (comme expliqué ici dans le guide de référence).

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

Les deux devraient donner le même résultat, sans avoir besoin de recourir au SQL ordinaire.