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 шт):
После Top5 нужен By даже если нет параметра для поиска.
findTop5ByOrderByCountDesc
Документация говорит, что By является разделителем, после которого начинается критерий, который включает в себя и сортировку:
the first By acts as delimiter to indicate the start of the actual criteria
Вот примеры из документации, когда нет собственно фильтра:
User findFirstByOrderByLastnameAsc();
User findTopByOrderByAgeDesc();
Так что в вашем случае нужно использовать такое имя: findTop5ByOrderByCountDesc