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

Spring Boot集成H2数据库插入数据时列值不匹配问题

解决Spring Boot+H2插入Movie表列值不匹配问题

问题原因

你的Movie实体类中id字段配置了@GeneratedValue(strategy = GenerationType.IDENTITY),这意味着该主键由数据库自动生成(自增),手动在INSERT语句中指定id值会违反H2数据库的自增主键规则,从而触发列值不匹配的异常。

解决方案

修改INSERT语句,移除手动指定的id列和对应值,让数据库自动生成主键:

INSERT INTO Movie
(name, releasedate, image, trailer, backdrops)
VALUES
('Spider-Man: No Way Home', '2021', 'https://m.media-amazon.com/images/M/MV5BZWMyYzFjYTYtNTRjYi00OGExLWE2YzgtOGRmYjAxZTU3NzBiXkEyXkFqcGdeQXVyMzQ0MzA0NTM@._V1_FMjpg_UX1000_.jpg', 'https://www.youtube.com/watch?v=SnFDOzyGDsM', 'https://4kwallpapers.com/images/wallpapers/spider-man-no-way-home-2021-movies-marvel-comics-3440x1440-6992.jpg');

可选方案(不推荐)

如果确实需要手动插入id值,有两种方式:

  • 修改实体类主键生成策略,比如去掉@GeneratedValue注解,或改为GenerationType.AUTO,但会失去自动递增功能;
  • 先执行H2命令关闭约束检查:SET REFERENTIAL_INTEGRITY FALSE;,插入后再开启:SET REFERENTIAL_INTEGRITY TRUE;,这种方式可能引发数据一致性问题,仅临时测试使用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 04:07:18