网上有很多说法:
1、实体属性跟数据库中的关键字冲突。
2、检查setter//getter方法,看是否有例如boolean属性的getter方法为isXXX
还有一大堆。。。
但是这些貌似都没有卵用。。。
下面来说一下我的解决办法:
将hibernate数据库方言:
<prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
改为:
<prop key="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</prop>
控制台日志区别:
修改前:
修改后:
由此数据库建表成功。
原理:
TYPE=MyISAM 和 ENGINE=MyISAM 都是设置数据库存储引擎的语句 ,(老版本的MySQL使用TYPE而不是ENGINE(例如,TYPE = MYISAM)。 MySQL 5.1为向下兼容而支持这个语法,但TYPE现在被轻视,而ENGINE是首先的用法。 一般地,ENGINE 选项是不必要的;除非默认已经被改变了,MyISAM是默认存储引擎。