Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Was ist die LIMIT-Klausel-Alternative in JPQL?

Sie verwenden JPQL, das solche Begrenzungsergebnisse nicht unterstützt. Wenn Sie natives JPQL verwenden, sollten Sie setMaxResults verwenden um die Ergebnisse einzuschränken.

Sie verwenden jedoch Spring Data JPA, was es im Grunde ziemlich einfach macht. Siehe hier im Referenzhandbuch zum Einschränken von Ergebnissen basierend auf einer Abfrage. In Ihrem Fall würde die folgende find-Methode genau das tun, was Sie wollen.

findFirstByOrderById();

Sie könnten auch ein Pageable verwenden Argument mit Ihrer Abfrage anstelle eines LIMIT Klausel.

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

Machen Sie dann in Ihrem aufrufenden Code so etwas (wie erklärt hier im Referenzhandbuch).

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

Beide sollten das gleiche Ergebnis liefern, ohne auf einfaches SQL zurückgreifen zu müssen.