Как использовать зарезервированное в базе данных ключевое слово в 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; }
Заключение
Это же решение также может быть применено к зарезервированному ключевому слову в качестве имени таблицы.