Hibernate - Impossible d’insérer si la colonne nommée est un mot clé, tel que DESC

Hibernate - Impossible d'insérer si la colonne nommée est un mot-clé, tel que DESC

Problème

Une table nommée «catégorie» dans la base de données MySQL, contient un mot-clé «DESC» comme nom de colonne.

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
);

Fichier de mappage XML Hibernate


    
        ...
        
            
        
       ...
    

Ou annotation Hibernate

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

Lors de l'insertion dans la table des catégories, frappe le message d'erreur suivant:

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

Solution

Dans Hibernate, pour l'insérer dans le nom de la colonne «mot-clé», vous devez le mettre comme ceci «[column name]».

Fichier de mappage XML Hibernate


    
        ...
        
            
        
       ...
    

Ou annotation Hibernate

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