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

Spring Boot JPA保存实体报错Column 'created_at' cannot be null怎么办

问题原因及解决方案

这个报错是Spring Data JPA的审计功能未生效导致created_at字段没有被自动填充值,核心原因和修复方法如下:

  • 缺失审计功能总开关注解
    你已经在审计父类配置了AuditingEntityListener和@CreatedDate注解,但Spring Data JPA的审计功能默认是关闭的,需要在配置类或启动类上添加@EnableJpaAuditing注解才能触发自动填充逻辑,这是这类问题最常见的遗漏点。
    修复示例(加在Spring Boot启动类上即可):
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.data.jpa.repository.config.EnableJpaAuditing;

@SpringBootApplication
@EnableJpaAuditing // 新增这行开启JPA审计
public class StoreApplication {
    public static void main(String[] args) {
        SpringApplication.run(StoreApplication.class, args);
    }
}
  • 补充排查点(如果加了注解仍报错)
    1. 确认@CreatedDate、@LastModifiedDate注解的包路径是org.springframework.data.annotation,不要误引入其他框架的同名注解(你当前代码的引包是正确的)
    2. 确认实体类保留了无参构造方法,你使用了Lombok的@NoArgsConstructor注解,该配置正常,JPA需要无参构造完成实例化后触发审计字段填充,你之前新增业务字段构造方法的操作对审计字段填充没有影响,不需要额外调整。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 23:45:05