我正在面對遺留系統編寫與MySQL 5.0一起工作,現在需要將其遷移到Mysql 5.5(需求)。我發現一列被命名爲maxvalue
,這似乎是MySQL 5.5中的系統字。因此,包括此列的所有我的Hibernate查詢給語法錯誤:讓hibernate重新引用所有表/列名稱
Caused by: java.sql.BatchUpdateException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'maxvalue
似乎休眠不自動但是反引號`周圍的字段名呢。如果我提取查詢,請反引用``maxvalue \
它在MySQL 5.5中正確運行。
我找到了solution如何明確強制特定字段/表格的反引號。問題是我不知道還有多少其他列名會產生這樣的問題。 有沒有辦法告訴Hibernate自動反引用所有表名/列名?(這將產生有效的SQL,我不知道爲什麼它不會默認爲MySQL)。
編輯:This discussion幾乎讓我相信我想要的是不可能的。
因爲Hibernate是一個開源項目.... :) – StarPinkER 2013-02-18 08:55:38
@JermaineXu是和我們每個人都有時間停下來,無論我們實際上正在工作在學習和修復別人的代碼... – Basic 2013-02-26 11:03:48