启动应用程序时,我收到一个异常:
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>
发布于 2019-05-05 23:17:35
根据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引用它一样简单。潜在的小修改是必要的。
https://stackoverflow.com/questions/55991050
复制相似问题