Как использовать LIMIT 25 в @Query в Spring Data JPA - PullRequest
0 голосов
/ 25 марта 2020

Я пытаюсь получить 25 записей из таблицы employee, но получаю ошибку (java.lang.IllegalArgumentException). И я хочу отсортировать его по insertedTimeStamp ниже код

@Query("SELECT e FROM Employee e where e.name = :name AND e.address = :address order by e.insertedTimeStamp LIMIT 25")
public List<Employee> findByNameAndAddress(@Param("name") String name, @Param("address") String address);

1 Ответ

0 голосов
/ 25 марта 2020

Вы должны добавить Pageable параметр к вашему запросу и изменить тип возвращаемого значения на Page . Это делает запрос немного короче

@Query("from Employee e where e.name = :name AND e.address = :address")
Page<Employee> findByNameAndAddress(@Param("name") String name, @Param("address") String address, Pageable pageable);

Использование

int pageIndex = 0;  
int pageSize = 25;
String propertyToOrderBy = "insertedTimeStamp";     
Pageable pageable = PageRequest.of(pageIndex, pageSize, Sort.Direction.ASC, propertyToOrderBy);

Page<Employee> page = repository.findByNameAndAddress(name, address, pageable);
List<Employee> list = page.getContent();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...