Hibernate Диалект для Oracle 19
Одна из наших баз данных была обновлена до Oracle 19c, и теперь мое приложение не может подключиться к базе данных
Я получаю следующую ошибку.
HHH000400: Using dialect: org.hibernate.dialect.Oracle12cDialect
HHH000342: Could not obtain connection to query metadata : Unable to determine Dialect to use [name=Oracle, majorVersion=19]; user must register resolver or explicitly set 'hibernate.dialect'
Я искал диалект для оракула 19, но не мог найти.
Есть ли доступный диалект для оракула 19?
2 ответа
Нет более нового диалекта, чем 12c, и его можно было бы использовать с 19c, но в hibernate-orm была ошибка, которая мешает работе автоматического обнаружения, см.
https://hibernate.atlassian.net/browse/HHH-13184
https://hibernate.atlassian.net/browse/HHH-13609
Это уже решено в новых версиях 5.4, и я открыл PR для ветки 5.3.
Обходной путь на данный момент - вручную установить свойство диалекта. hibernate.dialect
к org.hibernate.dialect.Oracle12cDialect
.
Обратите внимание, что автоопределение изменилось в Hibernate 6, см. руководство по миграции .
В результате диалекты, специфичные для конкретной версии (например,org.hibernate.dialect.Oracle12cDialect
) больше не следует использовать. Используйте этот диалектorg.hibernate.dialect.OracleDialect
вместо этого и игнорируйте его устаревшие подклассы: