gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 11:15:24 24 4
gpt4 key购买 nike

我正在尝试使用 hbm2ddl.auto = update 更新现有表。几个表中有几个列,其中数据库列定义从实体中的声明更改。喜欢

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



'mycolumn' bigint(20) not null default 0



在 MySQL 中。

为什么 hbm2ddl 不更新这些东西?是否可以强制进行此类更新?
我想说 hbm2ddl 删除列的默认值并更改类型的长度。

最佳答案

hibernate.hbm2ddl.auto" value="update不会修改现有的表列定义。做一些测试我发现:
hibernate.hbm2ddl.auto" value="update将添加一个尚不存在的 db 列。
hibernate.hbm2ddl.auto" value="update不会删除实体中已删除/不再存在的 db 列。
hibernate.hbm2ddl.auto" value="update不会修改已经创建的 db 列。

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

看:
Need clarity on hibernate.hbm2ddl.auto=update


Hibernate hbm2ddl.auto possible values and what they do?

关于Hibernate hbm2ddl.auto=update 不更新 MySQL 中的列定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15978368/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com