MySQL 8是否有Hibernate方言?或者我应该使用Hibernate附带的org.hibernate.dialect.MySQL57Dialect? 我正在使用hibernate 5.2.16
答案 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获得