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

Spring Boot项目中@NotNull注解导致构建失败的解决方法

解决Spring Boot实体类@NotNull注解导致无参构造实例化失败的问题
  • 核心原因:大概率是你用了Lombok的@RequiredArgsConstructor注解(或者手动编写了带参构造),当字段添加@NotNull(属于NonNull类注解)后,@RequiredArgsConstructor会自动生成包含这些非空字段的带参构造器,此时Java默认的无参构造器会被覆盖,导致你用无参构造实例化时出现参数不匹配错误。

  • 解决办法:

    1. 显式添加无参构造:
      • 如果用Lombok,直接在实体类上加上@NoArgsConstructor注解,自动生成无参构造器,同时保留@NotNull的校验功能。
      • 也可以手动编写无参构造方法:
        public Category() {
            // 空实现即可
        }
        
    2. 无需声明包含所有@NotNull字段的构造器:字段校验是靠@NotNull配合Spring Validation框架(比如在接口参数上加@Valid触发校验)生效的,和构造器是否包含这些字段完全无关。构造器仅用于实例化对象,只要能正常创建对象,校验逻辑就能正常运行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 20:04:54