如何解决Builder 类没有构建方法名称:'build'-Jackson
调用 objectMapper.convertValue(cityEntity,City.class))
时发生此错误。
com.fasterxml.jackson.databind.exc.InvalidDeFinitionException: Builder 类 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 创建一个对象,但我没有传递所有参数,因此生成的方法不是 spring 正在寻找的方法。它正在搜索 N+1 个参数方法,但我只传递了 N 个参数。在这种情况下,它将寻找无法找到的不同方法签名。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。