Jpa. Как записать запрос в jparepository?

Есть список популярных запросов

@Entity
public class PopularSearch extends BaseEntity{
    private String searchStr;
    private Long count;
}

Нужно взять пять самых популярных. Делаю так

@Repository
public interface PopularSearchRepository extends BaseRepository<PopularSearch> {
    List<PopularSearch> findTop5OrderByCountDesc();
}

Выдают исключение PopularSearchRepository.findTop5OrderByCountDesc()! No property desc found for type Long! Traversed path: PopularSearch.count Если записать findTop5BySearchStrOrderByCountDesc(String s) то все компилируется хорошо. Можно ли записать таким образом подобный запрос? Можно записать через jpql, конечно, но интересно возможно ли этим способом.


Ответы (2 шт):

Автор решения: Anton Charov

После Top5 нужен By даже если нет параметра для поиска.

findTop5ByOrderByCountDesc
→ Ссылка
Автор решения: Roman Konoval

Документация говорит, что By является разделителем, после которого начинается критерий, который включает в себя и сортировку:

the first By acts as delimiter to indicate the start of the actual criteria

Вот примеры из документации, когда нет собственно фильтра:

User findFirstByOrderByLastnameAsc();

User findTopByOrderByAgeDesc();

Так что в вашем случае нужно использовать такое имя: findTop5ByOrderByCountDesc

→ Ссылка