2011-02-02 149 views
2

我試圖建立一個春天roo項目使用休眠和oracle數據庫。 oracle數據庫包含另一個應用程序使用的表。休眠與現有的數據庫

我有一個實體用戶已經存在於數據庫中,包含數千個用戶並被另一個應用程序共享。

我的新roo項目包含用戶實體和其他一些項目。 persistence.xml中配置了以下屬性:

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

在應用程序的首次部署,因爲有實體沒有桌子休眠失敗。切換到「創造」的值修正這一問題,但溼巾用戶表:(

有沒有解決的辦法?我想這樣做是這樣的

  1. 屬性值「創造」,但用戶實體被排除在某種程度上
  2. 部署應用程序,創建表等現有的用於用戶表。
  3. 停止應用
  4. 修改屬性值「更新」
  5. 沒有數據丟失:)

非常感謝。

回答

2

必須有一個更好的方式來做到這一點,但這裏是一個快速的黑客,這將讓你與你的期望步驟滾動:

  1. 重命名錶在Hibernate映射user_unused
  2. 修改屬性值爲create
  3. 部署應用程序,創建表等,現有的user表不變。
  4. 停止應用
  5. 重命名錶在Hibernate映射user
  6. 修改屬性值設置爲update
  7. 刪除由Hibernate的步驟創建user_unused數據庫表1
+0

謝謝詹姆斯,那正是我們正在做的。希望有一個更好的方法,更容易忘記重命名 – 2011-02-02 18:19:53

0

我從記憶一些hibernate論壇表示這個功能還沒有從休眠狀態中獲得。所以這裏是另一個黑客。您可以使用false作爲'creat',並使用true作爲'update'。在這種情況下,您需要配置所有類別。