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

从MySQL迁移至MS SQL Server时触发运行时异常

解决Spring Boot迁移至MS SQL Server时因关键字'user'导致的DDL语法错误

问题概述

将原本基于MySQL的Spring Boot应用迁移至MS SQL Server后,启动时出现DDL执行失败的报错,核心原因是**'user'是MS SQL Server的保留关键字**,而Hibernate生成的建表语句直接使用user作为表名,触发SQL语法错误。

解决方案

方案1:修改实体类表名,避开关键字

找到项目中对应的User实体类,修改@Table注解的表名为非关键字(比如users):

@Entity
@Table(name = "users")
public class User {
    // 原实体字段及逻辑保持不变
}

修改后Hibernate会生成名为users的表,彻底避开关键字冲突,这也是更规范的做法。注意后续需要同步调整Power BI数据源中对应的表名。

方案2:配置Hibernate自动转义关键字

如果不想修改实体类,可以在MS SQL Server的application.properties中添加以下配置,让Hibernate自动对所有标识符(表名、字段名)进行转义:

# 新增:让Hibernate自动转义关键字
spring.jpa.properties.hibernate.globally_quoted_identifiers=true

开启后,Hibernate生成的DDL会将user表名转为[user](MS SQL Server的关键字转义格式),从而通过语法校验。

验证修改

完成上述任一方案后,重新启动应用,Hibernate可以正常执行DDL语句,应用即可正常启动,后续Power BI也能正常连接MS SQL Server进行实时数据可视化。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 13:27:35