Я использую Spring Data REST с Spring Boot (1.5.17), и в моем коде есть следующий контроллер:
@RestController
public class StudentController {
@RequestMapping(method = GET, value = "students/{id}/notifications")
public @ResponseBody
ResponseEntity<?> getStudentNotifications(@PathVariable Long id, PersistentEntityResourceAssembler resourceAssembler, Pageable page) {
Student student = studentRepo.findOne(id);
Page<Notification> notifications = notificationHandler.getUnreadNotifications(student.getId(),page);
return new ResponseEntity<>(pagedResourcesAssembler.toResource(notifications, resourceAssembler), HttpStatus.OK);
}
}
Контроллер работает правильно, за исключением того, что я не могу использовать параметр сортировки, например students/1/notifications?sort=createdDate,DESC
. Он всегда сортируется по дате создания в порядке возрастания.
Я распечатал параметр Pageable на консоли [number: 0, size 20, sort: null]
, и он показывает, что атрибут сортировки всегда равен нулю.
Так что я здесь делаю неправильно? ?
РЕДАКТИРОВАТЬ
MVC конфигурация
@Configuration
public class SpringMvcConfig extends WebMvcConfigurerAdapter {
@Autowired
@Qualifier("repositoryExporterHandlerAdapter")
RequestMappingHandlerAdapter repositoryExporterHandlerAdapter;
@Override
public void addArgumentResolvers(
List<HandlerMethodArgumentResolver> argumentResolvers) {
List<HandlerMethodArgumentResolver> customArgumentResolvers = repositoryExporterHandlerAdapter.getCustomArgumentResolvers();
argumentResolvers.addAll(customArgumentResolvers);
}
@Override
public void addCorsMappings(CorsRegistry registry) {
}
}