初次研究一个新技术,总是遇到一些莫名其妙的坑,学习Hibernate 首先遇到的就是更具类字段数据库中自动创建表失败的问题。
网上也写了一些解决办法,还是没解决。研究之后解决了,记录一下。
创建表失败要检查一下自己数据库的引擎。
默认引擎InnoDB,方言选择
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
当MySql默认存储引擎为InnoDB,并且在数据库中要创建一张新表的时候(即表名不存在),此时数据库方言只能选择MySQLDialect;
当MySql默认存储引擎为InnoDB,并且需更改表结构(表名存在),数据库方言三者皆可选(建议选择MySQLInnoDBDialect)。