Я использовал JpaSpecificationExecutor
.давайте посмотрим findAll
, например.
Page<T> findAll(@Nullable Specification<T> spec, Pageable pageable);
Перед вызовом этого метода вы можете создать свою спецификацию динамически (где условие) и Pageable
объект с динамической Sort
информацией.
Дляпример
...
Specification<T> whereSpecifications = Specification.where(yourWhereSpeficiation);
Sort sortByProperty = Sort.by(Sort.Order.asc("property"));
PageRequest orderedPageRequest = PageRequest.of(1, 100, sortByProperty);
userRepository.findAll(whereSpecifications, PageRequest.of(page, limit, orderedPageRequest));