2011-02-02 143 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'。在这种情况下,您需要配置所有类别。