2013-01-25 44 views
0

當我嘗試使用@Table(" \" Employee \" ")註釋時,它會生成異常。有以下例外JPA 2:使用@Table註釋的例外

Exception in thread "main" javax.persistence.PersistenceException: org.hibernate.exception.SQLGrammarException: 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 '" Employee " (name, salary) values ('Jimmy', 35000)' at line 1 

沒有使用轉義字符僱員表生成成功,但我想生成表名稱「員工」。

+0

出於好奇...爲什麼? – sinuhepop

+0

,因爲當以這種方式使用'@ Table'註釋時,數據庫中的表名是'employee'。但我想像'Employee'一樣在數據庫中格式化表名。 –

+0

您使用的是哪個數據庫?它可能不支持表名中的引號 – mavroprovato

回答

1

作爲JPA實現的Hibernate不僅僅是影響數據庫表名的大小寫敏感性的堆棧技術。數據庫的能力以及如何建立起關鍵作用。

在表名的情況下的MySQL靈敏度經由lower_case_table_names系統變量控制。例如在Windows中,默認情況下小寫字母是不區分大小寫的比較。另外,如果操作系統沒有區分大小寫的文件系統,結果是表名不能以大小寫方式存儲。

+0

這意味着現在,表名'Employee'不可能嗎? –

0

我問的是一樣的,因爲我看到默認是小寫的。