Ruhezustand - Kann nicht eingefügt werden, wenn die Spalte mit dem Schlüsselwort Schlüssel ist, z. B. DESC

Ruhezustand - Kann nicht eingefügt werden, wenn die benannte Spalte ein Schlüsselwort ist, z. B. DESC

Problem

Eine Tabelle mit dem Namen "Kategorie" in der MySQL-Datenbank enthält das Schlüsselwort "DESC" als Spaltennamen.

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-Zuordnungsdatei im Ruhezustand


    
        ...
        
            
        
       ...
    

Oder Annotation im Ruhezustand

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

Beim Einfügen in die Kategorietabelle wird die folgende Fehlermeldung angezeigt:

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

Lösung

Wenn Sie im Ruhezustand in den Spaltennamen "Schlüsselwort" einfügen möchten, sollten Sie ihn wie folgt einschließen: "[column name]".

XML-Zuordnungsdatei im Ruhezustand


    
        ...
        
            
        
       ...
    

Oder Annotation im Ruhezustand

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