Hibernate不能自動建數據表解決辦法


首先自己要注意自己的MYSQL版本,然后設置對應的方言

  • 兼容性模式

<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>

  • 需要注意的是5.5一下版本可以使用

<property name="hibernate.dialect">org.hibernate.dialect.MySQLInnoDBDialect</property>

  • Mysql數據庫版本是5.5的,設置事務性方言時要修改,就是加一個5

<property name="dialect">org.hibernate.dialect.MySQL5InnoDBDialect</property>

 


 

 此外還要注意其他方面的問題

1.錯誤原因:hbm文件中定義的元素含有sql的關鍵字

例如: <property name="name"></property>    <property name="birthday"></property>    <property name="from"></property>   代碼中含有"from"關鍵字. 


2.錯誤原因:配置文件中使用了create-drop屬性,數據庫表其實已經創建,只是又被刪除了: 

<property name="hbm2ddl.auto">create-drop</property>   只要把create-drop替換為create即可 


 3.錯誤原因:默認的數據庫類型錯誤。  

把mysql中my.ini文件中配置的 MyISAM 變成 INNODB,代碼如下: 
# The default storage engine that will be used when create new tables when    

default-storage-engine=INNODB 


4.錯誤原因;hbm文件中未寫錯,但是在myeclipse中開發的  
myeclipse不能自動識別如下語句,需要在Configuration中手動重新配置一下即可運行; 

<property name="hbm2ddl.auto">update</property> 


5.如果在spring里面集成hibernate3,

例如配置代碼如下:

<property name="hibernateProperties">    

  <value> 
    hibernate.dialect=org.hibernate.dialect.MySQLDialect//注意這些地方沒有空格 
    hibernate.hbm2ddl.auto=update//注意這些地方沒有空格                                   
hibernate.show_sql=false//注意這些地方沒有空格
hibernate.format_sql=false//注意這些地方沒有空格
</value> </property>

 

注意每行結尾沒有空格,不然也會造成不能自動建表的后果


免責聲明!

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



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