Hibernate - невозможно вставить, если столбец с именем является ключевым словом, например, DESC

Hibernate - невозможно вставить, если столбец named является ключевым словом, например DESC

проблема

Таблица с именем «category» в базе данных MySQL содержит ключевое слово «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
);

Файл сопоставления XML Hibernate


    
        ...
        
            
        
       ...
    

Или аннотация Hibernate

@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, чтобы вставить имя столбца «ключевое слово», вы должны заключить его как «[column name]».

Файл сопоставления XML Hibernate


    
        ...
        
            
        
       ...
    

Или аннотация Hibernate

@Column(name = "[DESC]", nullable = false)
    public String getDesc() {
        return this.desc;
    }