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

OpenAPI Generator中如何为特定模型单独配置Lombok注解?

使用OpenAPI Generator为特定Java模型配置Lombok注解

我正在用OpenAPI Generator(openapi: 3.0.3)自动生成带Lombok注解的Java模型类,以下是生成器配置片段:

{
  "apiPackage": "com.francislainy.mydramalistbe.controller",
  "modelPackage": "com.francislainy.mydramalistbe.model",
  "enumPackage": "com.francislainy.mydramalistbe.model.enums",
  "packageName": "com.francislainy.mydramalistbe",
  "groupId": "com.francislainy",
  "artifactId": "mydramalistbe",
  "interfaceOnly": true,
  "delegatePattern": true,
  "useTags": true,
  "dateLibrary": "java8",
  "useSpringBoot3": true,
  "useJakartaEe": true,
  "apiNameSuffix": "Api",
  "useSetForUniqueItems": false,
  "generateBuilders": false,
  "additionalModelTypeAnnotations": "@lombok.Builder;@lombok.AllArgsConstructor;@lombok.NoArgsConstructor",
  "tagToControllers": {
    "content": ["ContentApi", "com.francislainy.mydramalistbe.api.content"]
  },
  "inlineEnumMapping": false,
  "openApiNullable": false,
  "useJackson": true,
  "additionalProperties": {
    "hideGenerationTimestamp": true,
    "jackson": true,
    "jsonMappingAnnotations": true,
    "useBeanValidation": true
  }
}

❗ 问题描述

通过additionalModelTypeAnnotations全局添加@AllArgsConstructor时,部分模型出现如下错误:

Constructor with '4' parameters is already defined beside @lombok.AllArgsConstructor

这是因为必填字段自动生成了签名相同的构造函数,导致与Lombok注解冲突。因此我希望只为特定模型应用Lombok注解(如@NoArgsConstructor或@Data),而非全局统一配置,解决该冲突。

✅ 已尝试方案

我在OpenAPI规范中尝试了以下几种扩展字段配置,但均未生效:

x-lombok:
  - "@lombok.NoArgsConstructor"
  - "@lombok.Data"
x-lombok: 
  value: true
  data: true 
  noArgsConstructor: true
x-extra-annotation: "@lombok.NoArgsConstructor"
x-lombok-annotations:
  - lombok.Data
  - lombok.NoArgsConstructor

示例Schema配置:

ContentListResponse:
  type: object
  x-lombok-annotations:
    - lombok.Data
    - lombok.NoArgsConstructor
  properties:
    data:
      type: array
      items:
        $ref: '#/components/schemas/ContentItem'
    page:
      type: integer
    pageSize:
      type: integer
    total:
      type: integer
  required:
    - data
    - page
    - pageSize
    - total

❓ 咨询问题

使用OpenAPI Generator时,是否有官方支持的方式只为特定模型应用Lombok注解(如@NoArgsConstructor)?或者能否按Schema覆盖全局注解?

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 08:40:11