web-dev-qa-db-ja.com

MySQL 8のHibernateダイアレクト?

MySQL 8用のHibernateダイアレクトはありますか?または、Hibernateに同梱されているorg.hibernate.dialect.MySQL57Dialectを使用する必要がありますか? hibernate 5.2.16を使用しています

16
unknow

MySQL8Dialect(org.hibernate.dialect.MySQL8Dialect)はhibernateバンドル5.3.1.Finalで利用可能です。それを使用できます。

22
Vipin Purohit

はい、MySQL8では、org.hibernate.dialect.MySQL8Dialectを使用します

7
duliu1990

私はこの質問が数週間前であることを知っていますが、完全を期すためにHibernate 5.3にはMySQL8方言があります

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

私はそれを使ったことがないので、その品質についてコメントすることはできませんが、サポートはそこにあるようです。

3
MaxPower

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のバージョンと非推奨のドライバークラス名に注意してください

1
Eugene Hoza

MySQL 8のリリースノート を見ると、MySQL 8.xは開発中であり、2018年4月19日(1か月未満前)からGAのみがリリースされています。そのため、すでにそれ専用に作られた方言があるとは思わない。

すべての休止状態の方言のリストを見ることができます こちら 、そしてご覧のとおり、MySQL 8方言はありません。

MySQLDialectはMySQL 5以前でのみ使用し、MySQL57DialectはMySQL 5.xおよび8.xで使用する必要があります。

0
TwiN

MySQL 8 Serverをインストールし、Spring Boot Applicationを使用して同じものと対話しようとしたときに、同様のクエリがありました。

しかし、私はそうすることができませんでした。

MySQL5Dialectクラスのソースコードを調べたときに、この方言クラスがMySQL 5.Xバージョン専用であることがドキュメントに明確に記載されています。

MySQL 8.Xバージョンをサポートしているかどうかはわかりません。

したがって、Hibernateで公式の方言がリリースされるまで、MySQL 5.Xを使用することをお勧めします。

0
Philip Dilip