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.