这个原因是在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;
} }