自动生成表时报错,保存信息如下图所示:
可以看出提示 SQL 语法错误, 在 创建表后多了 type=MyISAM 导致错误,为什么会自动多了这么一句sql呢? 在 stackOverflow 中找到了答案:
总结来说就是:
- type=MyISAM 是在Mysql 4.x 版本时创建表时用的语法,5.5后的版本将该语法删除
- 但是在核心配置文件(hibernate.cfg.xml)中,因为我配置的是下面的值,使用的是 MySQL 4.x 的sql生成工具,而连接的数据库是 MySQL 5.7 , 故会导致生成的sql语法错误
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
纠正之后
<property name="hibernate.dialect">org.hibernate.dialect.MySQL57Dialect</property>