首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

Hibernate 4 + MySQL 5.1+ 建表報錯 type=InnoDB 解決方案:升級方言類

     編輯:MySQL 綜合教學

Hibernate 4 + MySQL 5.1+ 建表報錯 type=InnoDB 解決方案:升級方言類

錯誤現象

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'type=InnoDB' at line 8

根因

MySQL 5.0 以前支援 TYPE=InnoDB,5.1 起廢除,必須使用 ENGINE=InnoDB。Hibernate 方言類 org.hibernate.dialect.MySQLInnoDBDialect 仍生成舊語法。

解決方案

修改 Hibernate 配置,將方言升級為 5.1+ 專用版:

# 修改前
hibernate.dialect=org.hibernate.dialect.MySQLInnoDBDialect

# 修改後
hibernate.dialect=org.hibernate.dialect.MySQL5InnoDBDialect

版本對應規則

  • MySQL 5.0 及以下:MySQLInnoDBDialect
  • MySQL 5.1 及以上:MySQL5InnoDBDialect(生成 ENGINE=InnoDB)
  • MySQL 5.5+ 可用 MySQL55Dialect(含更多新特性支援)

一行配置修正,避免手工維護 DDL 腳本,保持 ORM 與數據庫版本同步。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved