Я пишу REST API с помощью Spring Boot. Здесь я пытаюсь отсортировать список, используя 'PagingAndSortingRepository'. Это то, что я пробовал в качестве метода в своем классе контроллера
@GetMapping public ResponseEntity
<PagedModel<ComplainDTO>> getComplains(@RequestParam(defaultValue = "0",value = "page",required =false)int page, @RequestParam(value="sortBy" ,required = false,defaultValue = "complainId") String sortBy, PagedResourcesAssembler assembler) {
return ResponseEntity.status(HttpStatus.OK)
.body(assembler.toModel(complainService.getAllComplains(page,sortBy)));
}
Метод на мой сервис
@Override
public Page<ComplainDTO> getAllComplains(int page,String sortBy) {
Pageable pageable = PageRequest.of(page,20, Sort.by(sortBy));
Page<ComplainEntity> result =complainRepository.findAll(pageable);
return result.map(complainEntity -> toDTO(complainEntity));
}
Я беру ввод от потребителя для сортировки списка на основе заданного атрибута, однако поведение сортировки по умолчанию - Ascending. Итак, как я могу реализовать это, принимая пользовательские параметры независимо от того, идет ли это по возрастанию или спуск в сторону от использования if-else.