/******************************************************************************
Author: QinZhiGuo
Date: 2012-6-26
Topic: 關於數據庫端表更新本地hibenate相關配置調整的解決方案
******************************************************************************/
Content:
後臺組在開發過程中可能會遇到這樣的如下問題:
1. 根據手機端需求變化,需要修改後臺的數據庫設計
2. 數據庫設計存在一定的問題,某些數據庫表需要刪除若干列
3. 新建了數據庫表
4. 在原有表中新添加了列
這一系列問題我們可能會經常性的遇到,之前爲了解決後臺編碼和開發的問題,我們選擇重新反向生成所有的表,來達到重建的目的。但是這樣一來存在很大的問題,就是我們需要重複性的去完成很多工作。之前一直苦於這樣的無用功。
現在我們可以嘗試一下另外的解決方案:
Q1:新建了表怎麼辦呢?
A1:新建表後,我們解決起來比較簡單,直接添加相關配置,但是可能需要修改幾個文件,首先切換到”MyEclipse Database Explorer Perspective”視圖模式,具體的切換方法可以在:
Window->ShowView->DB Browser
然後選擇對應的數據連接,然後在ECAMPUS->TABLE下可以看到我們用戶可以訪問的數據庫表,選擇要添加的表,然後右鍵->反向生成。然後一步步添加entity和DAO即可。
反向生成完畢後我們需要回到MyEclipse的編輯模式,然後需要配置hibernate.cfg.xml文件,然後再mapping裏面添加我們剛剛加入的表映射配置文件,比如我們剛剛反向添加了WApp整個表,在com.edance.ecampus.web.entity裏面會有一個com.edance.ecampus.web.entity.Wapp.hbm.xml,我們需要將這個配置問價加入即可。
Q2:表中添加了新的列怎麼辦?
A2:
解決方法一(推薦):
把原有表的配置文件包括如下
com.edance.ecampus.web.entity.XXX.hbm.xml,
com.edance.ecampus.web.entity.XXX.java
com.edance.ecampus.web.dao.XXXDAO.java
依次刪除。
然後重新反向添加,添加方法如A1
解決方法二:
數據庫中原有表中添加新列後我們並不需要刻意的重新生成,在研究了hibernate的配置相關性後,我們需要改動幾個地方來解決這個問題:
首先我們需要在對應的com.edance.ecampus.web.entity.XXX.hbm.xml中添加對應的一個<property>XXXX</property>項,這樣配置文件才能訪問到對應的列。
然後在com.edance.ecampus.web.entity.XXX.java中添加對應的set和get方法。然後保存。
然後需要在XXXDAO.java中添加和修改對應的方法。一般配置完成後myeclipse會自動更新。
Q3:表中刪除了原有若干的列怎麼辦?
A3: 修改方法同Q2,改動的地方相同,只是變成了刪除。
-----------------------------------------à我是華麗的分割線<------------------------------------------------
如果在上述情況修改完還是不好使的話,可以嘗試重新生成,最笨的辦法了。祝大家好運!