Wie verwende ich ein reserviertes Schlüsselwort für die Datenbank in Hibernate?

Wie verwende ich das für die Datenbank reservierte Schlüsselwort im Ruhezustand?

Wenn Sie im Ruhezustand versuchen, ein Objekt mit einem für die Datenbank reservierten Schlüsselwort als Spaltennamen in einer Tabelle zu speichern, wird möglicherweise der folgende Fehler angezeigt:

ERROR JDBCExceptionReporter:78 - 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 'Datadabase reserved keyword....

Reserviertes Schlüsselwort "DESC"

In MySQL ist "DESC" das reservierte Schlüsselwort. In einigen Beispielen wird veranschaulicht, wie dieses reservierte Schlüsselwort im Ruhezustand verwendet wird.

Ruhezustand der XML-Zuordnungsdatei

Dies ist die Standardimplementierung der XML-Zuordnungsdatei für eine Tabellenspalte. Sie führt zu JDBCException.

        
            
        

Lösung

1. Schließen Sie das Schlüsselwort in eckige Klammern [] ein.

        
            
        

2. Verwenden Sie einfache Anführungszeichen (‘), um die doppelten Anführungszeichen (’) einzuschließen.

        
            
        

Ruhezustand-Anmerkung

Dies ist die standardmäßige Annotation-Implementierung für eine Tabellenspalte. Sie führt zu JDBCException.

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

Lösung

1. Schließen Sie das Schlüsselwort in eckige Klammern [] ein.

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

2. Verwenden Sie doppelte Anführungszeichen (“), um es einzuschließen.

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

Fazit

Dieselbe Lösung kann auch auf das reservierte Schlüsselwort als Tabellenname angewendet werden.