MySQL8 的休眠方言

Posted

技术标签:

【中文标题】MySQL8 的休眠方言【英文标题】:Hibernate Dialect for MySQL8 【发布时间】:2020-05-12 13:20:24 【问题描述】:

我在使用 Hibernate 的 Spring 应用程序中遇到错误。我刚刚将数据库mysql版本从5.6升级到8.0。 错误是:

nested exception is org.hibernate.HibernateException: Dialect class not found: org.hibernate.dialect.MySQL8Dialect

在我的 build.gredle 文件中,我包含了以下内容:

dependencies 
compile group: 'mysql', name: 'mysql-connector-java', version: '8.0.11'

在我的 applicationContext.xml 文件中,我包含了以下内容:

<property name="hibernateProperties">
  <props>
    <prop key="hibernate.dialect">org.hibernate.dialect.MySQL8Dialect</prop>
    <prop key="hibernate.show_sql">true</prop>
    <prop key="hibernate.jdbc.batch_size">20</prop>
  </props>
</property>

在我的 lib 文件夹中,我还有连接器“mysql-connector-java-8.0.11.jar”。 我不明白为什么方言仍然缺失。请帮忙。 :)

【问题讨论】:

方言是休眠的一部分,而不是 jdbc 驱动程序。没有特定的 MySQL8 方言。有关可用方言的列表,请参阅docs.jboss.org/hibernate/orm/5.4/userguide/html_single/… M.Deinum,我已经按照这个帖子添加了方言:(***.com/questions/50322550/…)。顺便说一句,您共享的链接不存在 MySQL8Dialect 所以您能否建议我应该为 MySQL v-8 使用哪种方言 5.7 的那个。事实上没有特定的方言,只需使用最新的。 @M.Deinum,我使用了以下行但仍然出现相同的错误 org.hibernate.dialect.MySQL57InnoDB 检查您的休眠版本并查看哪些方言可用。选择一个。 【参考方案1】:

我使用的是 Hibernate v-3.3.0,它实际上不支持指定的方言。指定hibernate版本的参考链接是(https://javadoc.io/doc/org.hibernate/hibernate-core/3.3.0.CR1/index.html)。感谢M。 Deinum(https://***.com/users/2696260/m-deinum) 帮助我找到了问题。

【讨论】:

以上是关于MySQL8 的休眠方言的主要内容,如果未能解决你的问题,请参考以下文章

MSSQL 2014 的错误休眠方言

休眠 - 方言已配置但仍然出现错误

JBoss EAP 7.2 Oracle 休眠方言

即使驱动程序类名和休眠方言的值错误,Spring Hibernate 集成示例也会执行

如何解决“找不到方言类:org.hibernate.dialect.MYSQLDialect”异常?

电脑休眠怎么唤醒?