Hibernate – DESCなどの名前の列がキーワードの場合、挿入できません
問題
MySQLデータベースの「category」という名前のテーブルには、列名として「DESC」キーワードが含まれています。
CREATE TABLE `category` ( `CATEGORY_ID` int(10) unsigned NOT NULL AUTO_INCREMENT, `NAME` varchar(10) NOT NULL, `DESC` varchar(255) NOT NULL, PRIMARY KEY (`CATEGORY_ID`) USING BTREE );
HibernateXMLマッピングファイル
... ...
または休止状態の注釈
@Column(name = "DESC", nullable = false) public String getDesc() { return this.desc; }
カテゴリテーブルに挿入すると、次のエラーメッセージがヒットします。
Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: 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 'DESC) values ('CONSUMER', 'CONSUMER COMPANY')' at line 1 ... 35 more
溶液
Hibernateでは、「keyword」列名に挿入するには、この「[column name]」のように囲む必要があります。
HibernateXMLマッピングファイル
... ...
または休止状態の注釈
@Column(name = "[DESC]", nullable = false) public String getDesc() { return this.desc; }