Spring Boot生成MySQL表失败:部分实体类表未创建排查
问题排查与解决建议
核心原因
你遇到的问题根源是实体类中使用了MySQL的保留关键字desc作为字段名,Hibernate自动生成建表SQL时直接使用该字段名,触发MySQL语法解析错误,导致Appetizer表无法创建。
解决方法
- 修改字段名(推荐):将实体类中的
desc字段重命名为非关键字,比如description,同步更新对应的getter/setter方法及相关业务代码。 - 字段名转义处理:如果不想修改字段名,在实体类的字段上通过注解指定带反引号的列名,让MySQL识别为字段而非关键字:
@Column(name = "`desc`") private String desc;
验证步骤
- 完成上述修改后,可清理已生成的数据库schema(若有需要),重启Spring Boot应用。
- 查看应用启动日志,确认无SQL语法错误。
- 登录MySQL数据库,检查Appetizer表是否成功创建,同时验证关联表的外键关系是否正常。
内容的提问来源于stack exchange,提问作者jonathan Daboush
相关产品推荐
相关产品推荐

