Bạn đang sử dụng JPQL không hỗ trợ giới hạn kết quả như thế này. Khi sử dụng JPQL gốc, bạn nên sử dụng setMaxResults
để giới hạn kết quả.
Tuy nhiên, bạn đang sử dụng Spring Data JPA, điều này về cơ bản làm cho nó khá dễ dàng. Xem tại đây trong hướng dẫn tham khảo về cách giới hạn kết quả dựa trên truy vấn. Trong trường hợp của bạn, phương pháp tìm kiếm sau đây sẽ thực hiện chính xác những gì bạn muốn.
findFirstByOrderById();
Bạn cũng có thể sử dụng Pageable
đối số với truy vấn của bạn thay vì LIMIT
mệnh đề.
@Query("SELECT s FROM Students s ORDER BY s.id DESC")
List<Students> getLastStudentDetails(Pageable pageable);
Sau đó, trong mã gọi điện của bạn, hãy làm như thế này (như đã giải thích tại đây trong hướng dẫn tham khảo).
getLastStudentDetails(PageRequest.of(0,1));
Cả hai sẽ mang lại cùng một kết quả mà không cần sử dụng đến SQL thuần túy.