Używasz JPQL, który nie obsługuje takiego ograniczania wyników. Używając natywnego JPQL powinieneś użyć setMaxResults
aby ograniczyć wyniki.
Jednak używasz Spring Data JPA, co w zasadzie sprawia, że jest to dość łatwe. Zobacz tutaj w przewodniku informacyjnym dotyczącym ograniczania wyników na podstawie zapytania. W twoim przypadku metoda find zrobi dokładnie to, co chcesz.
findFirstByOrderById();
Możesz także użyć Pageable
argument z zapytaniem zamiast LIMIT
klauzula.
@Query("SELECT s FROM Students s ORDER BY s.id DESC")
List<Students> getLastStudentDetails(Pageable pageable);
Następnie w swoim kodzie wywołującym zrób coś takiego (jak wyjaśniono tutaj w przewodniku referencyjnym).
getLastStudentDetails(PageRequest.of(0,1));
Oba powinny dać ten sam wynik, bez konieczności uciekania się do zwykłego SQL.