hibnate 创建表的时候type=innodb报错

时间:2023-11-13 21:54:44

这个原因是在MYSQL5.5及以后版本中type=InnoDB 由ENGINE=InnoDB  代替。

解决办法,自己定义一个方言:

package com.hotusm.dialect;

/**
*
* @author Hotusm
*
* 在MYSQL5.5及以后版本中type=InnoDB 由ENGINE=InnoDB 代替。
由于5.5默认的存储引擎就是InnoDB,因此去掉这个属性不会有影响。
<code>
<property name="dialect">com.hotusm.dialect.MYSQLInnoDBDialect</property>
</code>
*/
public class MYSQLInnoDBDialect extends org.hibernate.dialect.MySQLInnoDBDialect{ @Override
public String getTableTypeString() { return "ENGINE=InnoDB";
} @Override
public boolean hasSelfReferentialForeignKeyBug() {
return true;
} }