You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 13:53:11