MySQL 8的Hibernate方言?

时间:2018-05-14 02:53:19

标签: java mysql hibernate

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

9 个答案:

答案 0 :(得分:19)

MySQL8Dialect(org.hibernate.dialect.MySQL8Dialect)在休眠捆绑5.3.1.Final中可用。您可以使用它。

答案 1 :(得分:6)

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

在application.yml

dataSource:
...
    driverClassName: com.mysql.cj.jdbc.Driver
    dialect: org.hibernate.dialect.MySQL8Dialect
....

在build.gradle

dependencies {
    ...
    runtime 'mysql:mysql-connector-java:8.0.17'
    ...

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

答案 2 :(得分:4)

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

答案 3 :(得分:3)

我知道这个问题已经过了几个星期,但为了完整起见,看来Hibernate 5.3确实有MySQL8方言

https://docs.jboss.org/hibernate/orm/5.3/javadocs/org/hibernate/dialect/package-summary.html

我没有使用它,所以我不能对它的质量发表评论,但支持似乎就在那里。

答案 4 :(得分:1)

是的,MySQL8Dialect for MySql 8。 就我而言,我已通过以下方式在Spring Boot应用程序中使用MySQL8Dialect for MySql 8:

spring.jpa.database-platform=org.hibernate.dialect.MySQL8Dialect  

答案 5 :(得分:1)

如果您使用的是 SpringBoot

spring:
  jpa:
    hibernate:
      ddl-auto: update
    database-platform: org.hibernate.dialect.MySQL8Dialect

答案 6 :(得分:0)

查看MySQL 8's release notes,MySQL 8.x一直处于开发状态,自2018-04-19(不到一个月前)以来一直只用于GA,所以我怀疑是否会有一个方言专门为它做的。

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

MySQLDialect只能用于MySQL 5及更早版本,而MySQL57Dialect应该用于MySQL 5.x以及8.x现在。

答案 7 :(得分:0)

我有类似的查询,因为我安装了MySQL 8 Server,并试图使用我的Spring Boot应用程序与它进行交互。

但我无法这样做。

当我探索MySQL5Dialect类的源代码时,它的文档清楚地提到这个方言类专门用于MySQL 5.X版本。

我不确定它是否支持MySQL 8.X版本。

因此我建议使用MySQL 5.X直到Hibernate发布官方方言。

答案 8 :(得分:0)

spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL8Dialect
spring.jpa.properties.hibernate.dialect.storage_engine=innodb

here获得