加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 使用hibernate删除/删除列

发布时间:2020-12-15 02:27:09 所属栏目:Java 来源:网络整理
导读:我正在使用Oracle Timesten 11数据库,我必须从我的应用程序中删除一列.我在开始时尝试使用SchemaUpdate,但它没有用.然后我使用SchemaExport的execute方法删除列;虽然drop列成功,但它最终删除了表中的所有记录.另外,我使用.jar文件作为输入来创建/删除/修改表
我正在使用Oracle Timesten 11数据库,我必须从我的应用程序中删除一列.我在开始时尝试使用SchemaUpdate,但它没有用.然后我使用SchemaExport的execute方法删除列;虽然drop列成功,但它最终删除了表中的所有记录.另外,我使用.jar文件作为输入来创建/删除/修改表.请帮我解决这个问题.

解决方法

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

编辑

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

EDIT2

Then I used SchemaExport’s execute method to drop the column; Though
the drop column was succesful,it ended up deleting all the records in
the table.

看起来您使用的模式导出策略并非“更新”,而是在创建SessionFactory时删除现有表并创建新表(请参阅Hibernate属性hibernate.hbm2ddl.auto,很可能将值设置为create-drop).

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读