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

如何通过openapi-generator-cli跳过Model类的equals()方法生成?

如何禁止openapi-generator-cli生成Model类的equals()方法

方案一:通过CLI参数直接禁用equals/hashCode生成

在你的CLI命令中添加--additional-properties equalsHashCode=false参数,即可让生成器不为Model类生成equals()和hashCode()方法,直接规避无效变量的问题:

java -jar ..\\openapi-generator-cli-6.2.1.jar generate --skip-operation-example -g spring --library spring-boot -i local-shoppingcart.json --additional-properties equalsHashCode=false

方案二:修复根源问题(解决无效变量名的本质原因)

你遇到的equals()方法中无效变量名问题,本质是Swagger定义里的泛型名称使用了全角的«»符号(比如ShoppingCartRequest«Customer»),这类符号不符合Java标识符规范,导致生成器解析出错。

建议将Swagger定义中的泛型名称改为合法的Java格式,用<>替代«»,示例修改如下:

"definitions": {
    // ... 保留其他原有定义
    "ShoppingCartRequest<Customer>": {
        "type": "object",
        "properties": {
            "cartInstanceID": {
                "type": "string"
            },
            "requestObject": {
                "$ref": "#/definitions/Customer"
            }
        },
        "title": "ShoppingCartRequest<Customer>"
    },
    "ShoppingCartResponse<Customer>": {
        "type": "object",
        "properties": {
            "cartInstanceID": {
                "type": "string"
            },
            "responseObject": {
                "$ref": "#/definitions/Customer"
            },
            "status": {
                "type": "string"
            }
        },
        "title": "ShoppingCartResponse<Customer>"
    },
    "ShoppingCartResponse<List<Nodes>>": {
        "type": "object",
        "properties": {
            "cartInstanceID": {
                "type": "string"
            },
            "responseObject": {
                "type": "array",
                "items": {
                    "$ref": "#/definitions/Nodes"
                }
            },
            "status": {
                "type": "string"
            }
        },
        "title": "ShoppingCartResponse<List<Nodes>>"
    }
}

修改后生成器就能正确解析类名和变量名,即使保留equals()方法也不会出现格式错误。

补充:精细控制生成逻辑(可选)

如果仅需禁用equals()而保留hashCode(),可以通过配置文件实现。创建config.json文件:

{
  "equalsHashCode": false
}

然后在CLI命令中引用该配置文件:

java -jar ..\\openapi-generator-cli-6.2.1.jar generate --skip-operation-example -g spring --library spring-boot -i local-shoppingcart.json -c config.json

注:openapi-generator 6.2.1版本的Spring生成器暂不支持单独禁用equals()或hashCode(),因此该配置会同时禁用两个方法。若需更精细控制,需自定义模板,但上述两种方案已能解决你的核心问题。

内容的提问来源于stack exchange,提问作者Raghavan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 16:50:22