Есть ли диалект Hibernate для Oracle Database 11g? Или мне следует использовать тот, org.hibernate.dialect.Oracle10gDialect
который поставляется с Hibernate?
98
Используйте диалект Oracle 10g. Также для последних драйверов JDBC требуется Hibernate 3.3.2+ (изменилась внутренняя структура класса - симптомы будут ныть по поводу абстрактного класса).
Диалект Oracle 11g такой же, как Oracle 10g ( org.hibernate.dialect.Oracle10gDialect ). Источник: http://docs.jboss.org/hibernate/orm/3.6/reference/en-US/html/session-configuration.html#configuration-optional-dialects
Согласно поддерживаемым базам данных , Oracle 11g официально не поддерживается. Хотя, я считаю, у вас не должно возникнуть проблем с использованием
org.hibernate.dialect.OracleDialect
.источник
org.hibernate.dialect.OracleDialect
устарел ( docs.jboss.org/hibernate/core/3.6/javadocs/org/hibernate/… ). Вам следует использовать диалект Oracle 10g.У нас возникла проблема с (устаревшим) диалектом
org.hibernate.dialect.Oracledialect
и базой данных Oracle 11g с использованиемhibernate.hbm2ddl.auto = validate
режима.С этим диалектом Hibernate не смог найти последовательности (из-за реализации
getQuerySequencesString()
метода, который возвращает этот запрос:"select sequence_name from user_sequences;"
для которого выполнение возвращает пустой результат из базы данных).
Использование диалекта
org.hibernate.dialect.Oracle9iDialect
или выше решает проблему из-за другой реализацииgetQuerySequencesString()
метода:"select sequence_name from all_sequences union select synonym_name from all_synonyms us, all_sequences asq where asq.sequence_name = us.table_name and asq.sequence_owner = us.table_owner;"
который возвращает все последовательности, если они выполнены.
источник
По крайней мере, в случае EclipseLink 10g и 11g отличаются. Начиная с версии 11g не рекомендуется использовать подсказку first_rows для запросов нумерации страниц.
См. «Можно ли отключить подсказки jpa для конкретного запроса» . Такой запрос не следует использовать в 11g.
Но могут быть и другие нюансы.
источник
Если вы используете WL 10, используйте следующее:
org.hibernate.dialect.Oracle10gDialect
источник
используйте только org.hibernate.dialect.OracleDialect Удалите 10g, 9 и т. д.
источник