spring - Builder 类没有构建方法(名称:'build') - Jackson
问题描述
调用时会出现此错误objectMapper.convertValue(cityEntity, City.class))
。
com.fasterxml.jackson.databind.exc.InvalidDefinitionException:生成器类com.example.PostgresApp.dto.City$Builder
没有构建方法(名称:'build')
package com.example.PostgresApp.dto;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonPOJOBuilder;
import lombok.*;
import org.apache.commons.lang3.StringUtils;
@Value
@Builder(builderClassName = "Builder")
@JsonDeserialize(builder = City.Builder.class)
public class City {
String name;
String description;
@JsonPOJOBuilder(withPrefix = StringUtils.EMPTY)
public static class Builder {
}
}
服务调用 repo 似乎是引发异常的地方
public List<City> getCities(){
return cityRepo.findAll().stream().map(cityEntity -> objectMapper
.convertValue(cityEntity, City.class))
.collect(Collectors.toList());
}
解决方案
您确定您总是将名称和描述传递给类 Builder 吗?
我遇到了同样的错误,在我的情况下,我试图使用生成的 Builder 来创建一个对象,但我没有传递所有参数,因此生成的方法不是 spring 正在寻找的方法。它正在搜索 N+1 个参数方法,但我只传递了 N 个参数。在这种情况下,它将寻找无法找到的不同方法签名。
推荐阅读
- excel - 创建一个电子表格,其中的下拉菜单相互配合
- mongodb - 如何在mongodb中查询和过滤多个文档?
- javascript - gojs - 查找节点级别
- javascript - 如何将 onclick 添加到 div 以显示或隐藏数据
- m2doc - 仅选择系统中的第一级组件,也不选择子组件
- python - 获取一行 pandas DataFrame 作为具有正确类型的 dict-like 对象
- rest - 需要对 REST API 请求/响应进行加密/解密?
- excel - 创建面积图时省略类别
- javascript - 如何使用数组中的参数连续进行 api 调用
- html - Favicon 从远程加载时运行良好,而对本地文件不起作用,我该如何解决?