首页 >数据库 >mysql教程 >使用 Hibernate 创建表时,为什么我会收到'MySQLSyntaxErrorException”,并显示消息'您的 SQL 语法有错误...”?

使用 Hibernate 创建表时,为什么我会收到'MySQLSyntaxErrorException”,并显示消息'您的 SQL 语法有错误...”?

Susan Sarandon
Susan Sarandon原创
2024-11-21 06:50:13422浏览

Why am I getting a

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

问题:

使用 Hibernate 创建表时,遇到“MySQLSyntaxErrorException”,并显示消息“您的 SQL 语法有错误;请检查与您的 MariaDB 服务器版本相对应的手册,以获取在 'type = MyISAM' 附近使用的正确语法”第 1 行。"

原因:

已弃用的“TYPE=MYISAM”片段是由配置的 Hibernate 方言在 DDL 语句中生成的。 MySQL 5.5 及更高版本或 MariaDB 不支持此片段。

解决方案:

要解决此问题,您需要配置与以下内容一致的适当 Hibernate 方言您的数据库服务器版本。

对于 MariaDB,根据您的版本和 Hibernate 版本,使用以下方言之一:

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

对于 MySQL,或者如果您的 Hibernate 版本中没有 MariaDB 方言,使用以下方言之一(或变体):

  • org.hibernate.dialect.MySQL5Dialect
  • org.hibernate.dialect.MySQL55Dialect
  • org.hibernate.dialect .MySQL57Dialect
  • org.hibernate.dialect.MySQL8Dialect
  • org.hibernate.dialect.MySQL57InnoDBDialect

注:

使用 Hibernate 6,您可以恢复使用 MySQLDialect 或 MariaDBDialect,因为这些方言将根据连接的数据库版本自动配置自身。

以上是使用 Hibernate 创建表时,为什么我会收到'MySQLSyntaxErrorException”,并显示消息'您的 SQL 语法有错误...”?的详细内容。更多信息请关注PHP中文网其他相关文章!

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