Рубрики
Без рубрики

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

– Как использовать зарезервированное ключевое слово базы данных в режиме гибернации?

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

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” является зарезервированным ключевым словом. Давайте рассмотрим несколько примеров, демонстрирующих, как использовать это зарезервированное ключевое слово в режиме гибернации.

Спящий режим XML-файла сопоставления

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

        
            
        

Решение

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

        
            
        

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

        
            
        

Аннотация перехода в спящий режим

Это реализация аннотации по умолчанию для столбца таблицы, это вызовет исключение 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;
	}

Вывод

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

Оригинал: “https://mkyong.com/hibernate/how-to-use-database-reserved-keyword-in-hibernate/”