Hibernate入门使用hibernate.hbm2ddl.auto时报错
报错信息一:org.hibernate.exception.SQLGrammarException: could not execute statement
报错信息二:Error executing DDL
Bug来源及解决方案(两方面):
-
类文件对象中的属性(主键自增)误定义为String,这样创建数据表是会将字段名定义为VARCHAR,而VARCHAR不能自增,前后矛盾所以报错。可将属性改为Long
-
Hibernate方言配置错误
错误配置:
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
正确配置:
若你的MySQL版本在5及以上,以下配置才正确(多一个“5”):
<property name="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</property>