Вие използвате JPQL, който не поддържа ограничаване на резултати като този. Когато използвате роден JPQL, трябва да използвате setMaxResults
за ограничаване на резултатите.
Въпреки това използвате Spring Data JPA, което по същество го прави доста лесно да се направи. Вижте тук в справочното ръководство за това как да ограничите резултатите въз основа на заявка. Във вашия случай следният метод find ще направи точно това, което искате.
findFirstByOrderById();
Можете също да използвате Pageable
аргумент с вашата заявка вместо LIMIT
клауза.
@Query("SELECT s FROM Students s ORDER BY s.id DESC")
List<Students> getLastStudentDetails(Pageable pageable);
След това във вашия код за повикване направете нещо подобно (както е обяснено тук в справочното ръководство).
getLastStudentDetails(PageRequest.of(0,1));
И двете трябва да дадат един и същ резултат, без да е необходимо да се прибягва до обикновен SQL.