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 的版本和休眠:
对于 MySQL,或者如果 MariaDB 方言不可用,请考虑使用:
Hibernate 6 方言
使用 Hibernate 6,用户应切换回使用 MySQLDialect 或MariaDBDialect 因为这些方言将根据实际连接来配置自己版本。
以上是为什么我在 Hibernate 生成的 DDL 中收到“type=MyISAM”语法错误?的详细内容。更多信息请关注PHP中文网其他相关文章!