Ответ 1
AFAIK, Hibernate не поддерживает список зарезервированного ключевого слова (для каждой базы данных), поэтому я думаю, что вы должны искать экранирование идентификатора базы данных.
Если вы используете Hibernate 3.5+, попробуйте hibernate.globally_quoted_identifiers=true
процитировать все идентификаторы базы данных (это то, что они добавили для JPA 2.0, см. раздел 2.13 Именование объектов базы данных спецификации для JPA, чтобы активировать это, если вы используете JPA).
До версии 3.5 Hibernate не предлагает какой-либо опции конфигурации для глобального экранирования. Реализация пользовательского NamingStrategy
, чтобы избежать всего прозрачно, было бы рекомендуемым способом.
См. также
- Независимое от базы данных имя столбца/таблицы с именем?
- HHH-2578 - редизайн здания SessionFactory - я понимаю, что устранение этой проблемы приведет к автоматическому экранированию ключевых слов (через диалекты).