我有一个使用 @PageableDefault 注释的自定义控制器。我在我的类上使用了 @Controller 注释,但是,我想让这个控制器以 HATEOAS 响应进行响应。我添加了 @RepositoryRestController 将我的方法更改为
public HttpEntity<PagedResources<Resource<Books>>> search(
@RequestParam(value = "q", required = false) String query,
@PageableDefault(page = 0, size = 20) Pageable pageable)
然后返回
return new ResponseEntity<PagedResources<Resource<Books>>> booksAssembler
.toResource(queryResult), HttpStatus.OK);
现在我的@PageableDefault 不起作用。但是,当客户端从控制器发出请求(例如,显式添加(或不添加)&page=0&size=20 到 URL)端点时,pageable 始终为 null。我不明白为什么它在更改注释后停止工作?除了改回@Controller之外还有什么办法可以修复它吗?
我找到了解决方案。
我遇到了这个错误。 https://jira.spring.io/browse/DATAREST-906
我使用的是 Spring Boot 1.4.1,升级到 1.4.2 解决了问题。