Du bruger JPQL, som ikke understøtter begrænsning af resultater som dette. Når du bruger native JPQL, skal du bruge setMaxResults
for at begrænse resultaterne.
Men du bruger Spring Data JPA, hvilket grundlæggende gør det ret nemt at gøre. Se her i referencevejledningen til, hvordan man begrænser resultater baseret på en forespørgsel. I dit tilfælde ville den følgende, find metode gøre præcis, hvad du ønsker.
findFirstByOrderById();
Du kan også bruge en Pageable
argument med din forespørgsel i stedet for en LIMIT
klausul.
@Query("SELECT s FROM Students s ORDER BY s.id DESC")
List<Students> getLastStudentDetails(Pageable pageable);
Så gør noget som dette i din kaldekode (som forklaret her i referencevejledningen).
getLastStudentDetails(PageRequest.of(0,1));
Begge burde give det samme resultat uden at skulle ty til almindelig SQL.