You need to enable JavaScript to run this app. Spring Boot+H2环境下@SequenceGenerator未生成序列问题咨询
优惠活动
大模型
产品
解决方案
定价
更多

Spring Boot+H2环境下@SequenceGenerator未生成序列问题咨询

问题解答

不需要提前在H2数据库中手动创建该序列,Spring Boot搭配Hibernate默认会自动识别@SequenceGenerator注解生成对应序列,未自动生成一般是配置异常导致,可按以下步骤排查:

  • 检查JPA DDL自动配置项:确认application配置文件中spring.jpa.hibernate.ddl-auto属性值为create、create-drop或update,若配置为none、validate时,Hibernate不会主动创建任何数据库对象,包含序列。
  • 检查注解挂载位置:当前你将@SequenceGenerator注解放到了非主键的普通字段registrationNumber上,旧版本Hibernate要求序列生成器注解必须和@Id注解共同绑定在主键字段上才会生效。如果你的业务要求非主键字段使用序列生成,可补充添加Hibernate专属的@Generated(GenerationTime.INSERT)注解到registrationNumber字段上适配该逻辑。
  • 检查数据库方言配置:确认spring.jpa.database-platform配置为org.hibernate.dialect.H2Dialect,方言识别错误会导致Hibernate生成的序列创建语法不兼容H2,进而跳过序列创建流程。
手动初始化方案(可选)

如果你不想调整现有配置,也可以通过初始化脚本手动创建序列:在项目resources目录下新建schema.sql文件,写入以下SQL内容,Spring Boot启动时会自动执行该脚本完成序列创建:

CREATE SEQUENCE reg_num_seq START WITH 1000 INCREMENT BY 1;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.21 20:27:03