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

Spring Boot启动报错:创建dataSourceScriptDatabaseInitializer Bean失败

解决Spring Boot JPA启动时data.sql插入ID为NULL的错误

常见原因及修复方法

1. 实体类ID未配置自增策略

若实体类的ID字段未设置自动生成策略,H2数据库不会自动为ID赋值,插入时就会触发ID为NULL的错误。

修复示例:

@Entity
public class YourEntity {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY) // 添加自增策略
    private Long id;
    // 其他字段及getter/setter方法
}

2. data.sql中未指定ID值

如果实体类ID没有自增策略,或是你需要手动指定ID,必须在INSERT语句中明确提供ID值。

错误示例:

INSERT INTO your_entity(name) VALUES ('测试内容');

修复后示例:

INSERT INTO your_entity(id, name) VALUES (1, '测试内容');

3. 检查H2数据库表结构

确认数据库表的ID列已设置自增属性(AUTO_INCREMENT):

  • 若通过JPA自动建表,确保实体类配置正确;
  • 若手动建表,需在CREATE TABLE语句中指定:
CREATE TABLE your_entity (
    id BIGINT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(255)
);

4. 调整Spring Boot初始化配置

使用Spring Boot 2.5+版本时,可检查初始化脚本的执行时机,避免表结构未创建完成时执行data.sql。在application.properties中添加配置:

spring.sql.init.mode=always
spring.jpa.hibernate.ddl-auto=update

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 01:54:52