Bor*_*jev 15 java mysql hibernate escaping
我面临着与MySQL 5.0一起编写的遗留系统,现在需要将其迁移到MysQL 5.5(要求).我发现有一列被命名maxvalue,这似乎是MySQL 5.5中的系统字.因此,包含此列的所有Hibernate查询都会出现语法错误:
引起:java.sql.BatchUpdateException:您的SQL语法中有错误; 检查与MySQL服务器版本对应的手册,以便在'maxvalue附近使用正确的语法
似乎Hibernate并不会自动反复引用`围绕字段名称.如果我提取查询,则反引用`maxvalue`它在MySQL 5.5中正确运行.
我找到了解决方案如何明确强制特定字段/表的反引号.问题是我不确定有多少其他列名会产生这样的问题.有没有办法告诉Hibernate自动反引所有表/列名?(这将生成有效的SQL,我不知道为什么默认情况下它没有为MySQL做到这一点).
编辑:这个讨论几乎让我相信我想要的是不可能的.
Mik*_*unu 36
为此目的,有一个未记录的财产.使用,
<property name="hibernate.globally_quoted_identifiers" value="true"/>
Run Code Online (Sandbox Code Playgroud)
要么
<property name="hibernate.globally_quoted_identifiers">true</property>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8878 次 |
| 最近记录: |