Hibernate: диалект не был установлен. Установите свойство hibernate.dialect - PullRequest
4 голосов
/ 29 июня 2010

У меня есть следующее hibernate.cfg.xml:

<hibernate-configuration>
   <session-factory>
      <property name="hibernate.format_sql">true</property>
      <property name="hibernate.show_sql">true</property>
      <property name="hibernate.connection.url">jdbc:mysql://localhost/EJB</property>
      <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
      <property name="hibernate.connection.username">root</property>
      <property name="hibernate.connection.password">password</property>
      <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
      <property name="hibernate.hbm2ddl.auto">update</property>
      <property name="hibernate.current_session_context_class">org.hibernate.context.ThreadLocalSessionContext</property>
 <!-- Snip -->

Что я потребляю, используя эту строку:

sessionFactory = new AnnotationConfiguration().configure().buildSessionFactory();

Затем, в другом месте я пытаюсь это:

SimpleSelect pkSelect = new SimpleSelect(Dialect.getDialect());

Что приводит к следующему исключению:

org.hibernate.HibernateException: The dialect was not set. Set the property hibernate.dialect.

Обратите внимание, следующая выдержка из журналов:

02:26:48,714  INFO Configuration:1426 - configuring from resource: /hibernate.cfg.xml
02:26:48,717  INFO Configuration:1403 - Configuration resource: /hibernate.cfg.xml
02:26:48,909 DEBUG Configuration:1387 - hibernate.dialect=org.hibernate.dialect.MySQLDialect

Есть идеи, что я делаю не так?

1 Ответ

4 голосов
/ 29 июня 2010

Javadoc getDialect() говорит:

Получить экземпляр диалекта, указанного в текущих свойствах системы.

Поэтому для работы этого метода необходимо настроить hibernate.dialect в hibernate.properties.

Использовать SessionFactoryImplementor#getDialect().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...