Hibernate 生成的DDL 中出現無效語法錯誤“type= MyISAM”
問題:
嘗試使用Hibernate在MySQL中建立表格時,遇到以下情況error:
此錯誤發生在Hibernate 產生的查詢中:
我搜尋過類似的錯誤,但發現用戶通常在手動傳遞查詢時遇到此問題。在這裡,Hibernate 正在產生表格建立查詢。在哪裡可以找到錯誤以及如何解決它?
答案:
出現此錯誤是因為您的配置中使用的方言已過時。在 Hibernate 5.x 及更早版本中,org.hibernate.dialect.MySQLDialect 用於 MySQL 4.x 或更早版本。此方言產生的「TYPE=MYISAM」片段在 MySQL 4.0 中已棄用,並在 5.5 中刪除。
要解決此問題,您需要更新 Hibernate 配置中的方言。如果您使用 MariaDB,根據其版本和 Hibernate版本,您可以使用以下一種方言:
如果您使用MySQL 或您的Hibernate 版本中不存在上述MariaDB 方言,您可以使用以下其中一種方言:
在Hibernate 6中,您可以再次使用 MySQLDialect 或 MariaDBDialect,因為 Hibernate 6 方言會根據連接的版本進行自我配置。
以上是為什麼 Hibernate 在建立 MySQL 表時會產生「type=MyISAM」的「無效語法錯誤」?的詳細內容。更多資訊請關注PHP中文網其他相關文章!