首页  >  文章  >  数据库  >  为什么我在 Hibernate 生成的 DDL 中收到“type=MyISAM”语法错误?

为什么我在 Hibernate 生成的 DDL 中收到“type=MyISAM”语法错误?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-11-15 07:16:02304浏览

Why am I getting the

Hibernate 生成的 DDL 中的无效语法错误“type=MyISAM”

在 Java 代码中,用户可能会遇到以下语法错误:

Caused by :`com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException`: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB' server version for the right syntax to use near 'type = `MyISAM`' at line 1

当 Hibernate 生成包含片段的表创建查询时,会出现此错误“类型=MyISAM。”但是,此语法在 MySQL 4.0 中已弃用,并在 5.5 中删除。

方言配置

问题源于 org.hibernate.dialect.MySQLDialect 方言的使用,适用于 MySQL 4.x 或更早版本。对于 MariaDB,建议使用以下方言之一,具体取决于 MariaDB 的版本和休眠:

  • org.hibernate.dialect.MariaDBDialect
  • org.hibernate.dialect.MariaDB53Dialect
  • org.hibernate.dialect.MariaDB106Dialect(或更高)

对于 MySQL,或者如果 MariaDB 方言不可用,请考虑使用:

  • org.hibernate.dialect.MySQL5Dialect
  • org.hibernate.dialect.MySQL55Dialect
  • org.hibernate.dialect.MySQL57Dialect
  • org.hibernate.dialect.MySQL8Dialect
  • 变体这些方言(例如 org.hibernate.dialect.MySQL57InnoDBDialect)

Hibernate 6 方言

使用 Hibernate 6,用户应切换回使用 MySQLDialect 或MariaDBDialect 因为这些方言将根据实际连接来配置自己版本。

以上是为什么我在 Hibernate 生成的 DDL 中收到“type=MyISAM”语法错误?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn