MySQL 8用のHibernateダイアレクトはありますか?または、Hibernateに同梱されているorg.hibernate.dialect.MySQL57Dialectを使用する必要がありますか? hibernate 5.2.16を使用しています
MySQL8Dialect(org.hibernate.dialect.MySQL8Dialect)はhibernateバンドル5.3.1.Finalで利用可能です。それを使用できます。
はい、MySQL8では、org.hibernate.dialect.MySQL8Dialect
を使用します
私はこの質問が数週間前であることを知っていますが、完全を期すためにHibernate 5.3にはMySQL8方言があります
https://docs.jboss.org/hibernate/orm/5.3/javadocs/org/hibernate/dialect/package-summary.html
私はそれを使ったことがないので、その品質についてコメントすることはできませんが、サポートはそこにあるようです。
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のバージョンと非推奨のドライバークラス名に注意してください
MySQL 8のリリースノート を見ると、MySQL 8.xは開発中であり、2018年4月19日(1か月未満前)からGAのみがリリースされています。そのため、すでにそれ専用に作られた方言があるとは思わない。
すべての休止状態の方言のリストを見ることができます こちら 、そしてご覧のとおり、MySQL 8方言はありません。
MySQLDialect
はMySQL 5以前でのみ使用し、MySQL57Dialect
はMySQL 5.xおよび8.xで使用する必要があります。
MySQL 8 Serverをインストールし、Spring Boot Applicationを使用して同じものと対話しようとしたときに、同様のクエリがありました。
しかし、私はそうすることができませんでした。
MySQL5Dialectクラスのソースコードを調べたときに、この方言クラスがMySQL 5.Xバージョン専用であることがドキュメントに明確に記載されています。
MySQL 8.Xバージョンをサポートしているかどうかはわかりません。
したがって、Hibernateで公式の方言がリリースされるまで、MySQL 5.Xを使用することをお勧めします。