hibernate有个配置可以在程序启动后自动生成建表语句,继而在数据库创建相关的表
<property name="hibernate.hbm2ddl.auto">update</property>
但是有个问题,新建的表的type是MyISAM,一般mysql建表默认的type是InnoDB,那么如何更改呢?
有以下做法:
1.在配置文件中配置:
<property name="hibernate.dialect.storage_engine">innodb</property>
2. 重写getDefaultMySQLStorageEngine方法
第一种方法配置了没有效果,虽然hibernate推荐使用这个配置
第二种方式hibernate中已经有了,MySQL55Dialect(多了一个5 :))
package org.hibernate.dialect;
/**
* An SQL dialect for MySQL 5.5.x specific features.
*
* @author Vlad Mihalcea
*/
public class MySQL55Dialect extends MySQL5Dialect {
@Override
protected MySQLStorageEngine getDefaultMySQLStorageEngine() {
return InnoDBStorageEngine.INSTANCE;
}
}
当然配置文件中也应该多个5:
<property name="hibernate.dialect">org.hibernate.dialect.MySQL55Dialect</property>