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

使用Spring Data查询Order实体时出现order附近SQL语法错误问题

问题根因

你遇到的报错是因为order是PostgreSQL的保留关键字,直接用作表名会触发SQL语法解析错误,和实体的关联关系配置无关。从Hibernate生成的调试日志也能看到,生成的SQL中直接写了from order order0_,PostgreSQL解析时会把这里的order识别为ORDER BY语法的关键字,因此抛出语法错误。

解决方案

有两种可行的解决方式:

  • 方案一(更推荐):修改表名避开保留关键字
    把Order实体的@Table注解修改为非保留关键字的命名,同时同步修改数据库中的表名即可,示例:
    @Entity
    @Table(name = "business_order") // 替换为你自定义的非关键字表名
    public class Order {
        // 其余代码保持不变
    }
    
  • 方案二:强制转义表名
    如果不想修改现有表名,可以给表名加上双引号转义,让PostgreSQL将其识别为普通表名:
    @Entity
    @Table(name = "\"order\"")
    public class Order {
        // 其余代码保持不变
    }
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 00:36:03