初觸hibernate01--MYSQL建表時type=InnoDB和Engine=InnoDB注意點

eBusinessMan發表於2015-01-19

    第一次執行程式時,將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 server version for the right syntax ”!!

    後來,網上查詢一番,發現是因為type=InnoDB在5.0以前是可以使用的,但5.1之後就不行了。如果我們把type=InnoDB改為engine=InnoDB就不會有這個問題。但是,我想使用Hibernate,自動幫我建表,怎麼辦呢。這就與我們指定的資料庫方言(dialect)有關了。

    之前我的配置是:
    <prop key="hibernate.dialect">org.hibernate.dialect.MySQLInnoDBDialectprop> 
     現在改為
    
<prop key="hibernate.dialect">org.hibernate.dialect.MySQL5InnoDBDialectprop>  

    
 好了,這樣問題就解決了。總結下:
    hibernate中,對於mysql version5.1~5.5,都是‘MySQL5InnoDBDialect’  !!

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29900383/viewspace-1407348/,如需轉載,請註明出處,否則將追究法律責任。

相關文章