使用hibernate删除/删除列

时间:2011-08-04 12:54:59

标签: java hibernate

我正在使用Oracle Timesten 11数据库,我必须从我的应用程序中删除一列。我在开始时尝试使用SchemaUpdate,但它没有用。然后我使用SchemaExport的execute方法删除列;虽然drop列成功,但它最终删除了表中的所有记录。另外,我使用.jar文件作为输入来创建/删除/修改表。请帮我解决这个问题。

1 个答案:

答案 0 :(得分:1)

从我的角度来看,如果您希望从应用程序执行DDL操作,那么JDBC就是您的选择。 SchemaUpdate的目的应该是在业务模型和数据库物理结构之间执行同步。

修改

刚才发现您可能通过删除字段来更新您的业务模型(实体),并且想知道为什么它没有反映在您的数据库中。 SchemaUpdate将创建新的列(和表),但不会删除从实体中删除的列。

<强> EDIT2

  

然后我使用SchemaExport的execute方法删除列;虽然   drop column成功了,它最终删除了所有记录   桌子。

您似乎使用了不“更新”的架构导出策略,而是在创建SessionFactory时删除现有表并创建新表(请参阅Hibernate属性hibernate.hbm2ddl.auto,很可能将值设置为{{ 1}})。