У меня есть простая служба REST, которая получает данные с загрузкой Spring CrudRepository
.Фильтрация данных с помощью Spring Boot CrudRepository
Это хранилище уже реализует пагинацию и возможности сортировки, как это:
public interface FlightRepository extends CrudRepository<Flight, Long> {
List<Flight> findAll(Pageable pageable);
}
Calling его:
Sort sort = new Sort(direction, ordering);
PageRequest page = new PageRequest(xoffset, xbase, sort);
return flightRepo.findAll(page);
Я хотел бы также добавить фильтрацию в этом хранилище (например, возвращать только объекты с id > 13 AND id < 27
). CrudRepository, похоже, не поддерживает эту функциональность. Есть ли способ достичь этого или мне нужно использовать другой подход?
Спасибо за любые советы!
Может ли это быть объединено с страницей? Я надеялся, что могу указать это в каком-то объекте и передать его функции. Это не очень удобно, когда вы нуждаетесь в некоторой гибкости (пользователь может указать настраиваемое поле для фильтрации, и мне нужно будет указать такую функцию для каждой возможной комбинации ...) – Smajl
да, вы можете использовать simpy 'List findByIdBetween (Long start , Long end, pageable pageable) ' –
pezetem
также рекомендуем вам изменить расширенный интерфейс на' PagingAndSortingRepository'. –