Как использовать зарезервированное в базе данных ключевое слово в Hibernate?

Как использовать зарезервированное в базе данных ключевое слово в Hibernate?

В Hibernate, когда вы пытаетесь сохранить объект в таблицу с любым зарезервированным ключевым словом базы данных в качестве имени столбца, вы можете получить следующую ошибку…

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....

Зарезервированное ключевое слово «DESC»

В MySQL «DESC» является зарезервированным ключевым словом. Давайте рассмотрим несколько примеров, чтобы продемонстрировать, как использовать это зарезервированное ключевое слово в Hibernate.

Файл отображения XML Hibernate

Это реализация файла сопоставления XML по умолчанию для столбца таблицы, она вызовет JDBCException…

        
            
        

Решение

1. Заключите ключевое слово в квадратные скобки [].

        
            
        

2. Используйте одинарные кавычки (‘), чтобы заключить двойные кавычки («)

        
            
        

Hibernate Аннотация

Это стандартная реализация аннотации для столбца таблицы, она вызовет JDBCException…

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

Решение

1. Заключите ключевое слово в квадратные скобки [].

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

2. Используйте двойные кавычки («), чтобы заключить его.

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

Заключение

Это же решение также может быть применено к зарезервированному ключевому слову в качестве имени таблицы.