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

Spring Boot创建表时SQL语法错误:期望标识符

问题原因与解决方案

核心原因

从异常信息里的标记[*]value可以直接定位问题:value是H2数据库的保留关键字,直接将它用作列名会触发SQL语法错误,这和你更换表名的操作无关。

解决方案

有两种可行的处理方式:

  • 方案一:修改列名(推荐)
    在Attribute类的value字段上,通过@Column注解指定一个非保留字的列名,比如attr_value:

    @Column(name = "attr_value")
    private byte[] value;
    
  • 方案二:转义保留字列名
    如果必须保留value作为列名,可以用H2支持的转义方式,通过@Column注解将列名用双引号包裹:

    @Column(name = "\"value\"")
    private byte[] value;
    

    这种方式需要确保项目中Hibernate的SQL方言配置正确,能识别转义符号。

额外优化提示

你的BaseClass是抽象类且标注了@Entity,这种情况下需要添加@Inheritance注解指定继承策略(比如@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)或SINGLE_TABLE),否则Hibernate可能无法正确生成表结构,不过这不是当前异常的直接原因,但建议补充以避免后续问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 17:35:32