MySQL 8的Hibernate方言?

unk*_*now 18 java mysql hibernate

MySQL 8是否有Hibernate方言?或者我应该使用Hibernate附带的org.hibernate.dialect.MySQL57Dialect?我正在使用hibernate 5.2.16

小智 26

MySQL8Dialect(org.hibernate.dialect.MySQL8Dialect)在hibernate bundle 5.3.1.Final中可用.你可以用它.

  • 太棒了...... spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL8Dialect 对我来说非常适合 - HHH000400:使用方言:org.hibernate.dialect.MySQL8Dialect。想知道为什么这还不被接受?可能是我将 Hibernate 5.3.7 与 Springboot 2.1.2 一起使用。 (2认同)
  • “MySQL8Dialect 已被弃用;请使用 org.hibernate.dialect.MySQLDialect 代替” (2认同)

小智 11

spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL8Dialect
spring.jpa.properties.hibernate.dialect.storage_engine=innodb
Run Code Online (Sandbox Code Playgroud)

从这里得到


小智 8

是的,对于MySQL8,请使用 org.hibernate.dialect.MySQL8Dialect

  • 在 Hibernate 6 中,`org.hibernate.dialect.MySQL8Dialect` 似乎已被弃用:C (4认同)

Eug*_*oza 6

如果您正在使用Gradle(例如用于Grails),则只需配置:

在application.yml中

dataSource:
...
    driverClassName: com.mysql.cj.jdbc.Driver
    dialect: org.hibernate.dialect.MySQL8Dialect
....
Run Code Online (Sandbox Code Playgroud)

在build.gradle中

dependencies {
    ...
    runtime 'mysql:mysql-connector-java:8.0.17'
    ...
Run Code Online (Sandbox Code Playgroud)

注意mysql-connector版本和不建议使用的驱动程序类名称


小智 5

从 Hibernate 6 开始,org.hibernate.dialect.MySQL8Dialect已弃用。现在推荐使用org.hibernate.dialect.MySQLDialect。请参阅Hibernate JavaDoc以供参考


Twi*_*wiN 1

查看MySQL 8 的发行说明,MySQL 8.x 一直在开发中,自 2018 年 4 月 19 日(不到一个月前)才发布 GA,所以我怀疑是否已经有专门为其制作的方言。

你可以在这里看到所有 hibernate 方言的列表,正如你所看到的,没有 MySQL 8 方言。

MySQLDialect只能用于 MySQL 5 及更早版本,而MySQL57Dialect目前应用于 MySQL 5.x 和 8.x。

  • 有'MySQL8Dialect',你可以检查它。 https://docs.jboss.org/hibernate/orm/5.3/javadocs/org/hibernate/dialect/MySQL8Dialect.html (2认同)