sql >> Databáze >  >> RDS >> Mysql

Jaká je alternativa klauzule LIMIT v JPQL?

Používáte JPQL, který nepodporuje omezování výsledků, jako je tento. Při použití nativního JPQL byste měli použít setMaxResults omezit výsledky.

Nicméně používáte Spring Data JPA, což v zásadě usnadňuje práci. Viz zde v referenční příručce o tom, jak omezit výsledky na základě dotazu. Ve vašem případě by následující metoda hledání udělala přesně to, co chcete.

findFirstByOrderById();

Můžete také použít Pageable argument s vaším dotazem namísto LIMIT doložka.

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

Pak ve svém volacím kódu udělejte něco takového (jak je vysvětleno zde v referenční příručce).

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

Oba by měly přinést stejný výsledek, aniž byste se museli uchýlit k prostému SQL.



  1. GPL a libmysqlclient

  2. Analyzujte název souboru a cestu z úplné cesty

  3. Úplné šifrování MariaDB v klidu a během přepravy pro maximální ochranu dat – část první

  4. Jak dotazovat vnořená pole ve sloupci postgres json?