当前位置: 首页 > 知识库问答 >
问题:

Hibernate hbm2ddl.auto=update不更新MySQL中的列定义

闻枫
2023-03-14



在几个表中有几列数据库列定义从实体中的声明更改。喜欢

@Column(name="mycolumn", nullable=false, length=10)
private Long mycolumn;

mycolumn' bigint(20) not null默认值为0

在 MySQL 中。

为什么hbm2ddl不更新这样的东西?有可能强制这样的更新吗?我想说hbm2ddl删除列的默认值并更改类型的长度。

共有1个答案

邓令雪
2023-03-14

hibernate.hbm2ddl.auto“ value=”update 不会修改现有的表列定义。做一些测试,我发现:

hibernate.hbm2ddl.auto“ value=”update添加一个尚不存在的数据库列。

<code>hibernate.hbm2ddl。auto“value=”update不会删除实体中已删除/不再存在的数据库列。

hibernate.hbm2ddl.auto"值="更新不会修改已经创建的数据库列。

需要备份表数据,将其删除并重新启动应用程序,以使该表的架构与实体恢复同步。然后重新加载数据。

请参阅:
需要澄清hibernate.hbm2ddl.auto=update

和< br> Hibernate hbm2ddl.auto可能的值以及它们的作用?

 类似资料:
  • 我们正在使用hibernate3.jar.Hibernate属性设置如下, 在现有表中添加新列并将我们的应用程序从旧版本迁移到新版本。该列在迁移后成功添加到表中,但在日志中面临以下错误: 列已成功添加,但仍面临日志中的错误。

  • update 修改表数据update($table, $data, $where) table [string] 表名. data [array] 修改的数据. where (optional) [array] WHERE 条件.[可选]Return: [number] 受影响的行数.你可以修改没有序列化的数组, 并且能使用 [+], [-], [*], [/] 来做运算 $database->u

  • update 修改表数据update($table, $data, $where) table [string] 表名. data [array] 修改的数据. where (optional) [array] WHERE 条件.[可选]Return: [number] 受影响的行数.你可以修改没有序列化的数组, 并且能使用 [+], [-], [*], [/] 来做运算 class Foo {

  • 问题内容: 我需要运行以下查询: 但是在执行时会出现错误: 有什么办法吗? 问题答案: 在我看来,进行一些小的更改即可解决此问题? 更改为。因此,您对想要的价值

  • 问题内容: 更新“订单”列的最佳方法是什么? 假设我有一个ID列,其范围是0到9,而订购列的范围是0到9。 当前,它在数据库中的位置为:0 0、1、1、2、2等 我的HTML页面发布了新顺序:0 8、1 3、2 6等(这完全是随机的,由用户决定)。 进行更新的最佳方法是什么? 我可以遍历并运行每个更新。我还可以创建一个包含所有对的临时表,然后基于子查询进行更新。 但是我觉得我忘记了一些琐碎的事情,

  • 问题内容: 我想使用一个case语句更新表中的多个列,但是我找不到如何执行此操作的方法(甚至有可能)。我提出了以下无效的参考查询: 有什么方法可以通过有效的SQL达到预期的结果吗? 问题答案: