sql >> Database >  >> RDS >> Mysql

Wat is het alternatief van de LIMIT-clausule in JPQL?

U gebruikt JPQL dat dergelijke beperkende resultaten niet ondersteunt. Als u native JPQL gebruikt, moet u setMaxResults . gebruiken om de resultaten te beperken.

U gebruikt echter Spring Data JPA, wat het in feite vrij eenvoudig maakt om te doen. Zie hier in de naslaggids over het beperken van resultaten op basis van een zoekopdracht. In uw geval zou de volgende zoekmethode precies doen wat u wilt.

findFirstByOrderById();

Je zou ook een Pageable . kunnen gebruiken argument met uw vraag in plaats van een LIMIT clausule.

@Query("SELECT s FROM Students s ORDER BY s.id DESC")
List<Students> getLastStudentDetails(Pageable pageable);

Doe dan in je oproepcode zoiets als dit (zoals uitgelegd hier in de referentiegids).

getLastStudentDetails(PageRequest.of(0,1));

Beide zouden hetzelfde resultaat moeten opleveren, zonder dat je je toevlucht hoeft te nemen tot gewone SQL.



  1. Oracle JDeveloper 12c gebruiken met Oracle Database, deel 2

  2. Paging met Oracle- en sql-server en generieke pagingmethode

  3. COLLATION() Functie in Oracle

  4. C++-programma dat communiceert met MySQL-database