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

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

}
原文地址:https://www.cnblogs.com/zr520/p/5420092.html