Как исправить «org.hibernate.boot.registry.selector.spi.StrategySelectionException: невозможно разрешить имя [org.hibernate.dialect.MySQL8Dialect]»? - PullRequest
0 голосов
/ 05 мая 2019

Я получил исключение при запуске приложения:

Caused by: org.hibernate.boot.registry.selector.spi.StrategySelectionException: Unable to resolve name [org.hibernate.dialect.MySQL8Dialect] as strategy [org.hibernate.dialect.Dialect]
at org.hibernate.boot.registry.selector.internal.StrategySelectorImpl.selectStrategyImplementor(StrategySelectorImpl.java:126)

Я использую MySQL 8.0.

pom.xml:

<dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-core</artifactId>
    <version>5.2.12.Final</version>
</dependency>
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.0.15</version>
</dependency>

hibernate.cfg.xml:

    <property name="hibernate.dialect">org.hibernate.dialect.MySQL8Dialect</property>
    <property name="hibernate.connection.driver_class">com.mysql.cj.jdbc.Driver</property>
    <property name="hibernate.connection.url">jdbc:mysql://localhost/botdb?serverTimezone=UTC</property>
    <property name="hibernate.connection.username">root</property>
    <property name="hibernate.connection.password">password</property>
    <property name="hibernate.show_sql">true</property>
    <property name="hibernate.hbm2ddl.auto">update</property>
    <property name="hibernate.connection.useSSL">false</property>
    <property name="hibernate.enable_lazy_load_no_trans">true</property>

1 Ответ

0 голосов
/ 05 мая 2019

Согласно pom.xml, вы сейчас используете Hibernate 5.2.12.Из 5.2 Javadocs видно, что у него нет MySQL8Dialect.

MySQL8Dialect был представлен в Hibernate 5.3 (см. Javadoc ).Проблема может быть решена путем обновления до Hibernate до 5.3 или до 5.4 .

Если обновление Hibernate не является вариантом, необходимо создать собственный диалект.Это может быть так же просто, как простое копирование MySQL8Dialect.java из более новой версии в базу кода и обращение к нему из файла persistence.xml.Потенциально незначительные модификации необходимы.

...