Spring Data JPA — Порядок по: сортировка по имени метода в сравнении с классом сортировки

#java #spring #sorting #spring-data-jpa

#java #spring #сортировка #spring-data-jpa

Вопрос:

Я использую Spring PagingAndSortingRepository, и у меня есть очень простой запрос на поиск:

 inventoryDao.findAll(new Sort(Sort.Direction.DESC,"startTime"))
  

Это работает нормально, мне просто было интересно: возможно ли заменить запрос выше, используя вместо этого генерацию имени метода? (Что-то вроде: inventoryDao.findAllOrderByStartTime() )

Комментарии:

1. Вы пробовали это? Смотрите docs.spring.io/spring-data/jpa/docs/current/reference/html /… . Короче говоря, да, это должно сработать.

2. все они являются ‘findBySomethnig’, а не ‘findAll’…

Ответ №1:

Вы должны использовать findAllByOrderBy …

Как говорится в документации Spring Data, первый by в имени метода действует как разделитель, указывающий начало фактического критерия, в вашем случае сортировки, поэтому необходимо добавить это в название метода перед словом Order .