本質原因:配置的Java Bean,由Hibernate自動產生的SQL語句中有語法錯誤
原因如下:
情況1.存在字段名/表名與數據庫關鍵字沖突
情況2.MySQL5.0以后與MySQL5.0以前事務引擎InnoDB配置微妙不同
//MySQL 5.0之后【engine = InnoDB】 <property name="hibernate.dialect">org.hibernate.dialect.MySQL5InnoDBDialect</property> //NySQL 5.0之前【type = InnoDB】 <property name="hibernate.dialect">org.hibernate.dialect.MySQLInnoDBDialect</property>
情況3:@Column的注解中的屬性columnDefinition出問題
//正確 columnDefinition="int comment '房間可住人數上限'" //錯誤:原因:如果不加字段屬性,hibernate反射時,會將comment視為字段名,將發生關鍵字沖突錯誤。 columnDefinition="comment '房間可住人數上限'"
情況4:數據類型轉換錯誤