Spring Data REST-其余控制器中的Pageable参数中的排序始终为空

问题描述 投票:-1回答:2

我在Spring Boot(1.5.17)中使用Spring Data REST,并且我的代码中包含以下控制器。

@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],它显示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) {

    }

}
java spring-boot spring-data-rest
2个回答
1
投票

控制器可以正常工作,但不能使用sort参数例如:students / 1 / notifications?createdDate,DESC。它总是按创建日期按升序排列。

[如果您尝试通过排序方式

students / 1 / notifications?createdDate,DESC

因为Pageable具有排序参数,所以您不能像下面这样调用。

students / 1 / notifications ?? sort = createdDate,DESC


0
投票

将以下内容添加到addArgumentResolvers方法

© www.soinside.com 2019 - 2024. All rights reserved.