如何在Hibernate 5.4.17和MySQL 8.0中使用MYSQLDialect?

zbq4xfa0  于 2023-11-16  发布在  Mysql
关注(0)|答案(2)|浏览(127)

我在hibernate.cfg.xml文件中使用的是Hibernate 5.4.17。我有这样的dialect属性:

<property name="dialect">org.hibernate.dialect.MySQLDialect</property>

字符串
这是好的使用或我应该改变它:

<property name="dialect">org.hibernate.dialect.MySQL8Dialect</property>

oprakyz7

oprakyz71#

你的hibernate方言的版本应该尽可能接近你的数据库版本。但不应该高于数据库版本。所以对于你的情况,org.hibernate.dialect.MySQL8Dialect将是最好的选择。
更多的细节请参见hibernate文档的这一部分。

hc8w905p

hc8w905p2#

对于其他偶然发现这个答案的人:这在Hibernate的新版本中已经改变了。从Hibernate documentation
自Hibernate 6起,Dialect的单个子类表示给定产品特定SQL方言的所有版本。数据库的版本在运行时通过传递给构造函数的DialectResolutionInfo和getVersion()属性公开。
使用Hibernate的程序应该远离使用版本化的方言类,例如MySQL8Dialect。这些类现在不推荐使用,并将在未来的版本中删除。
所以如果你有hibernate6或更高版本,你应该使用org.hibernate.dialect.MySQLDialect

相关问题