Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jaka jest alternatywa klauzuli LIMIT w JPQL?

Używasz JPQL, który nie obsługuje takiego ograniczania wyników. Używając natywnego JPQL powinieneś użyć setMaxResults aby ograniczyć wyniki.

Jednak używasz Spring Data JPA, co w zasadzie sprawia, że ​​jest to dość łatwe. Zobacz tutaj w przewodniku informacyjnym dotyczącym ograniczania wyników na podstawie zapytania. W twoim przypadku metoda find zrobi dokładnie to, co chcesz.

findFirstByOrderById();

Możesz także użyć Pageable argument z zapytaniem zamiast LIMIT klauzula.

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

Następnie w swoim kodzie wywołującym zrób coś takiego (jak wyjaśniono tutaj w przewodniku referencyjnym).

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

Oba powinny dać ten sam wynik, bez konieczności uciekania się do zwykłego SQL.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Ponowny problem z wydajnością tabeli MySQL MyISAM

  2. Błędy hibernacji w nazwanych zapytaniach

  3. Wiele kluczy obcych w tej samej tabeli

  4. Czy MySQL łamie standard, pozwalając na wybieranie kolumn, które nie są częścią klauzuli group by?

  5. Próba uzyskania dostępu do offsetu tablicy dla wartości typu bool