java - 使用 hibernate 删除/删除列

标签 java hibernate

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

最佳答案

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

编辑

刚刚发现您可能通过删除字段更新了您的业务模型(实体),并且想知道为什么它没有反射(reflect)在您的数据库中。 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)。

关于java - 使用 hibernate 删除/删除列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6941774/

相关文章:

java - 如何在分离线程中使用ObjectPool?

java - 使用 Spring ChannelAwareMessageListener 时如何处理 RabbitMQ 消费者取消通知

java - Hibernate:安全地将对象重新附加到 session

hibernate - hibernate 并将@GeneratedValue与CockroachDB一起使用会导致SQLGrammarException

Java LocalDate : Parse-Implementation with method reference or without, 区别,最佳实践?

java - 具有可变数量参数的接口(interface)的方法

java - ArrayList中不同类型(相同接口(interface))的计数

java - 具有相同类的父子的 JPA 映射

hibernate - 使用持久性类默认构造函数创建 SessionFactory 对象

mysql - Hibernate 3.0 与 MySQL 有连接问题