2015-05-26 3 views
1

Я пытаюсь подключиться к Oracle 12c, используя спящий режим версии 3.6.10.Final. Когда я сделать org.hibernate.cfg.configuration.buildSessionFactory()Hibernate Oracle 12c не в состоянии определить диалект

я

org.hibernate.HibernateException: Невозможно определить Диалект использовать [имя = Oracle, MajorVersion = 12]; пользователь должен зарегистрировать распознаватель или явно установить «hibernate.dialect».

Когда я использую Oracle 11g, у меня нет этой проблемы, диалект автоопределяется на org.hibernate.dialect.Oracle10gDialect. Почему для Oracle 12c это не работает.

Благодаря

+0

Может быть, потому что ваша устаревшая версия Hibernate еще до Oracle 12c? –

ответ

0

Hibernate 3.6.10 не поддерживает Oracle 12. StandardDialectResolver не может разрешить диалект для Oracle12

0

Hibernate в вашей версии не может угадать, что диалект использовать с Oracle12c. Однако вы можете заставить использовать диалект Oracle10.

Вот конфигурация пружины и свойство databasePlatform, которое выполняет эту работу.

<bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"> 
<property name="dataSource" ref="dataSource"/> 
<property name="jpaVendorAdapter"> 
    <bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter"> 
    <property name="generateDdl" value="true"/> 
    <property name="showSql" value="true" /> 
    <!-- this property forces Oracle10 on Oracle12c since Hibernete cannot guess it! --> 
    <property name="databasePlatform" value="org.hibernate.dialect.Oracle10gDialect"/> 
    </bean> 
</property> 

Смежные вопросы