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


    第一次運行程序時,將Hibernte中的hibernate.hbm2ddl.auto設置成create(或者是update),讓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.MySQLInnoDBDialect /> 
     現在改為
    <prop key="hibernate.dialect">org.hibernate.dialect.MySQL5InnoDBDialect />  
  
     好了,這樣問題就解決了。總結下:
    hibernate中,對於mysql version5.1~5.5,都是‘MySQL5InnoDBDialect’  !!

-----------------------------------------------------------

現在的api用MySQLDialect就可以了

 

原文章地址:http://blog.itpub.net/29900383/viewspace-1407348/


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM