我面临着写有MySQL 5.0中工作的遗留系统,现在需要将其迁移到MySQL 5.5(要求)。 我发现,一列被命名为maxvalue
,这似乎是在MySQL 5.5系统字。 因此,包括此列的所有我的Hibernate查询给语法错误:
java.sql.BatchUpdateException:通过引起您的SQL语法错误; 检查对应于你的MySQL服务器版本使用附近“MAXVALUE正确的语法手册
看来,Hibernate不自动但是反引号`周围的字段名。 如果我提取出查询,反引号`maxvalue`
它在MySQL 5.5中正确运行。
我已经找到解决方案如何显式地强制特定领域/表后引号。 问题是,我不知道其他的列名会多少产生这样的问题。 有没有办法告诉Hibernate自动BACKQUOTE所有的表/列名? (这将产生有效的SQL,我不知道为什么它不为MySQL做,默认情况下)。
编辑 : 这次讨论几乎让我相信,我想是不可能的。