JWorld@TW the best professional Java site in Taiwan
      註冊 | 登入 | 全文檢索 | 排行榜  

» JWorld@TW » Object Relational Mapping » Hibernate  

按列印兼容模式列印這個話題 列印話題    把這個話題寄給朋友 寄給朋友    訂閱主題
reply to postflat modego to previous topicgo to next topic
己加入精華區
by koji at 2006-07-26 14:35
本主題所含的標籤
無標籤
作者 [分享] 怎樣直接讓 hbm 與 db 同步 (v3.1) [精華]
metavige

metavige

版主

發文: 2134
積分: 10
於 2006-05-07 00:28 user profilesend a private message to usersend email to metavigereply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
http://www.hibernate.org/hib_docs/v3/reference/en/html/session-configuration.html

用 Hibernate 最討厭的,就是 DB、HBM、java 檔案的同步

在 v3.1 之後,在 hibernate 的 configuration
提供了一個處理方式,可以不用花很多時間,去用 hbm 轉 ddl
或用 ddl 轉 hbm

在 hibernate.properties 內設定
1
hibernate.hbm2ddl.auto=create|update|validate|create-drop

或 hibernate.cfg.xml 內設定
1
<property name="hbm2ddl.auto">create|update|validate|create-drop</property>


如此一來,在你剛開始啟動 SessionFactory 的時候,Hibernate 就會替你將 hbm 內所有的 table 建立起來

目前有以下幾種設定
1. create
SessionFactory 啟動的時候,會把目前 DB 內所有 TABLE DROP ,以目前 hbm 內的 table 對應關係,建立所有的 table,使用時請小心
2. update
SessionFactory 啟動的時候,會檢查目前 hbm 的 table or column 設定,如果有與目前 DB 內不一樣的,會做更新
3. validate
檢查目前 hbm 的設定,與目前 db 的欄位是否有不一致的,如果有,會丟出 Exception
(這個目前我試的結果,發現有些欄位型態,檢查起來怪怪的,比如說數字,我定義 java.math.BigDecimal,然後我 db 建立成 decimal,可是他會告訴我應該是 numeric 型態,這部分我還在嘗試。對了,這個缺點是,不會告訴你是那個欄位錯,有點傷腦筋)
4. create-drop
與第一項不同的是,當 SessionFactory 關閉的時候,就會把所有的 table drop 掉,蠻恐怖的設定,目前還沒有勇氣試

如果在剛剛開始的時候,create 很好用,不用再去擔心要怎樣跟 db 同步
但如果是已經用了一段時間,要修改 schema,可以使用 update (但還是建議備份一下)
至於 validate 跟 create-drop ~ 有需要的人可以試試看吧


reply to postreply to post
請各位新手參考 論壇規範Java 新手 FAQ
話題樹型展開
人氣 標題 作者 字數 發文時間
5419 [精華] [分享] 怎樣直接讓 hbm 與 db 同步 (v3.1) metavige 1256 2006-05-07 00:28
4519 Re:[分享] 怎樣直接讓 hbm 與 db 同步 (v3.1) jormeg 94 2006-05-10 14:38
4481 Re:[分享] 怎樣直接讓 hbm 與 db 同步 (v3.1) walalah 75 2006-05-18 09:55
4887 Re:[分享] 怎樣直接讓 hbm 與 db 同步 (v3.1) lueo 1224 2006-06-04 19:49
» JWorld@TW »  Object Relational Mapping » Hibernate

reply to postflat modego to previous topicgo to next topic
  已讀文章
  新的文章
  被刪除的文章
Jump to the top of page

JWorld@TW 本站商標資訊

Powered by Powerful JuteForum® Version Jute 1.5.8