Я следую за первым ответом на этот вопрос:
Spring MVC 3: вернуть страницу данных Spring в формате JSON
Я получаю ошибку компиляции Cannot infer type arguments for ResponseEntity<>
в следующем блоке кода:
@GetMapping("all")
@RequestMapping(produces = {MediaType.APPLICATION_JSON_VALUE})
public HttpEntity<PagedResources<SearchDto>> get(@PageableDefault Pageable p, PagedResourcesAssembler<SearchDto> assembler) {
Page<SearchDto> results = searchService.findAll(p);
return new ResponseEntity<>(assembler.toResource(results), HttpStatus.OK);
}
Когда я впервые пытался использовать этот код, мне не хватало зависимостей, поэтому я добавил:
<dependency>
<groupId>org.springframework.hateoas</groupId>
<artifactId>spring-hateoas</artifactId>
</dependency>
Я использую снимок, поэтому я не включил версию.
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.1.BUILD-SNAPSHOT</version>
</parent>
Я попытался изменить строку проблемы на:
return new ResponseEntity<PagedResources<SearchDto>>(assembler.toResource(results), HttpStatus.OK);
но вместо этого получите ошибку The constructor ResponseEntity<PagedResources<SearchDto>>(PagedResources<Resource<SearchDto>>, HttpStatus) is undefined
. Это приходит с предложениями:
Remove arguments to match ResponseEntity<PagedResources<SearchDto>>( HttpStatus)
Это не вернет мои результаты поиска вообще.
Cast argument 1 into MultiValueMap<String,String>
. Я просмотрел родительские классы PagedResources, и он не смог привести к MultiValueMap. Кроме того, было бы проблемой, если бы мои числа входили в виде строк в JSON.
Так что я хотел бы иметь возможность возвращать JSON с метаданными страницы и набором результатов. Спасибо за чтение.