休眠hbm2ddl.auto =更新不更新MySQL的列定义(Hibernate hbm2ddl.a

2019-08-22 11:25发布

我试图更新hbm2ddl.auto =更新现有的表。

有几个表,其中的数据库列定义的实体从声明中改变一些列。 喜欢

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

'mycolumn' BIGINT(20)非空默认0

在MySQL。

为什么就是hbm2ddl不更新这样的事情? 而且是有可能迫使这些更新? 我想说的就是hbm2ddl删除列的默认值,改变类型的长度。

Answer 1:

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

hibernate.hbm2ddl.auto" value="update将添加不存在一个数据库列。

hibernate.hbm2ddl.auto" value="update不会删除在你的实体移除/不再是一个数据库列。

hibernate.hbm2ddl.auto" value="update不会修改已经创建了一个数据库列。

你需要备份的表数据,删除它,然后重新启动您的应用程序来获取表的模式早在同步与你的实体。 然后重新装入您的数据。

看到:
需要对hibernate.hbm2ddl.auto =更新清晰度


休眠hbm2ddl.auto可能的值和他们做了什么?



文章来源: Hibernate hbm2ddl.auto=update doesn't update column definitions in MySQL