Quarkus中枚举构造器参数不匹配报错求助
问题解决:Quarkus枚举构造器参数不匹配报错
错误原因
你遇到的编译错误核心是枚举类构造器未正确定义:虽然你声明了带参数的枚举常量,但编译器找不到匹配的带参构造器。问题出在@RequiredArgsConstructor注解——Java枚举的构造器必须为私有,Lombok的这个注解在枚举类型上无法正确生成对应参数的构造器,导致编译器默认认为枚举只有无参构造器,和你传入的String+boolean参数不匹配。
修复方案
直接移除@RequiredArgsConstructor,手动编写私有构造器匹配枚举字段:
public enum ConnectorFormatEnum { SOCKET("SOCKET", true), CABLE("CABLE", true), UNKNOWN(null, false); private final String value; private final Boolean ocpi; // 手动实现私有构造器,对应字段参数 private ConnectorFormatEnum(String value, Boolean ocpi) { this.value = value; this.ocpi = ocpi; } @JsonValue public String getValue() { return value; } }
额外检查(实体类枚举映射)
你的实体类中@Enumerated(EnumType.STRING)+@Type(type = "pgsql_enum")的配置是正确的,但要确保PostgreSQL数据库已创建对应枚举类型:
CREATE TYPE ocpi_locations.connector_format AS ENUM ('SOCKET', 'CABLE', 'UNKNOWN');
同时保证实体类format字段与数据库枚举类型名称一致。
内容的提问来源于stack exchange,提问作者Llexii
相关产品推荐
相关产品推荐

