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 的休眠方言的主要内容,如果未能解决你的问题,请参考以下文章
即使驱动程序类名和休眠方言的值错误,Spring Hibernate 集成示例也会执行