我正在尝试用hbm2ddl.auto = update更新现有表。
几个表中有几个列,其中数据库列定义与实体中的声明不同。喜欢
@Column(name="mycolumn", nullable=false, length=10)
private Long mycolumn;和
‘'mycolumn’bigint(20)非空默认值0
在MySQL中。
为什么hbm2ddl不更新这些东西?是否有可能强行进行这样的更新?我希望使用hbm2ddl来删除列的默认值并更改类型的长度。
发布于 2014-10-31 18:55:02
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
和
https://stackoverflow.com/questions/15978368
复制相似问题