我有一个使用@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不起作用。但是,当客户端发出请求(例如,向URL明确添加(或不添加&page = 0&size = 20)URL)来自控制器的端点时,pageable始终为null。我不明白为什么更改注释后它会停止工作?除了改回@Controller以外,还有什么方法可以解决此问题?

最佳答案

我找到了解决方案。

我遇到了这个错误。 https://jira.spring.io/browse/DATAREST-906

我使用的是Spring Boot 1.4.1,升级到1.4.2解决了这个问题。

07-24 15:17