не работает преобразование пружин - несоответствие типов - PullRequest
0 голосов
/ 18 марта 2020

Я попытался создать пользовательский конвертер, как указано в - https://www.baeldung.com/spring-type-conversions#creating -a-custom-converter , но при преобразовании все еще наблюдается несоответствие типов.

Я создаю класс конвертера (PageToApiResponse), который преобразует страницу <*> в ResponseList. Этот конвертер затем добавляется в реестр в классе WebConfig. Однако, когда я хочу неявно преобразовать страницу в ResponseList в контроллере, я получаю несоответствие типов (служба возвращает страницу ). Я попытался аннотировать класс конвертера с помощью @Component, но это не работает.

Ошибка заключается в следующем: Обязательный: ResponseList. Найдено: Страница

Любая помощь будет принята с благодарностью.

Вот участвующие классы -

data class ResponseList(
    val total: Int,
    val limit: Int,
    val offset: Int,
    val results: List<*>
)
class PageToApiResponse : Converter<Page<*>, ResponseList> {

    override fun convert(source: Page<*>) = ResponseList(source.numberOfElements, source.size, source.number, source.content)
}

@Configuration
class WebConfig : WebMvcConfigurer {

    override fun addFormatters(registry: FormatterRegistry) {
        registry.addConverter(PageToApiResponse())
    }
}
    @ApiOperation(value = "Find demand by GPI")
    @ApiResponses(
        ApiResponse(code = 200, message = "Demand results", response = ProductDemand::class, responseContainer = "List"),
        ApiResponse(code = 400, message = "Bad input parameter"),
        ApiResponse(code = 401, message = "Unauthorized"),
        ApiResponse(code = 429, message = "Too Many Requests")
    )
    @PreAuthorize("hasAnyAuthority('${Authorities.EXT_USAGE_VIEW}')")
    @GetMapping("")
    fun getDemand(
        @RequestParam(required = true) gpi: String,
        @PageableDefault(
            page = 0,
            size = 50,
            sort = ["molecule"],
            direction = Sort.Direction.DESC
        ) pageable: Pageable
    ): ResponseList = service.getDemand(gpi, pageable)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...