【发布时间】:2026-01-07 13:15:01
【问题描述】:
我面临着为使用 MySQL 5.0 而编写的遗留系统,现在需要将其迁移到 MySQL 5.5(要求)。我发现有一列名为maxvalue,这似乎是 MySQL 5.5 中的系统字。因此,我所有包含此列的 Hibernate 查询都会出现语法错误:
Caused by: java.sql.BatchUpdateException: You have an error in your SQL 语法;检查与您的 MySQL 服务器相对应的手册 在 'maxvalue
附近使用正确语法的版本
Hibernate 似乎不会自动反引号 ` 围绕字段名称。如果我提取查询,反引号 `maxvalue` 它在 MySQL 5.5 中正确运行。
我发现solution 如何为特定字段/表显式强制反引号。问题是我不确定有多少其他列名会产生这样的问题。 有没有办法告诉 Hibernate 自动反引号所有表/列名?(这会产生有效的 SQL,我不知道为什么它默认不为 MySQL 这样做)。
编辑:This discussion 几乎让我相信我想要的东西是不可能的。
【问题讨论】:
-
由于hibernate是一个开源项目.... :)
-
@JermaineXu 是的,我们都有时间停下来学习和修复别人的代码……
标签: java mysql hibernate escaping