第一次運行程序時,將Hibernte中的hibernate.hbm2ddl.auto設置成create,讓Hibernate幫助自動建表,但不成功,報瞭如下信息:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'type=InnoDB' at line 1
我很納悶,爲什麼之前沒有這樣的問題呢?後來,想了想,會不會與我的開發環境有關呢。之前使用的MySql版本是5.0,現在換成了5.5,會不會與這有關呢。
後來,網上查找一番,發現是因爲type=InnoDB在5.0以前是可以使用的,但5.1之後就不行了。如果我們把type=InnoDB改爲engine=InnoDB就不會有這個問題。但是,我想使用Hibernate,自動幫我建表,怎麼辦呢。這就與我們指定的數據庫方言(dialect)有關了。
之前我的配置是:
Xml代碼:
<prop key="hibernate.dialect">org.hibernate.dialect.MySQLInnoDBDialect</prop>
現在改爲:就是多了個5
<prop key="hibernate.dialect">org.hibernate.dialect.MySQL5InnoDBDialect</prop>
好了,這樣問題就解決了。
原文地址:
http://jasonhan-sh-hotmail-com.iteye.com/blog/1473955