我试图更新hbm2ddl.auto =更新现有的表。
有几个表,其中的数据库列定义的实体从声明中改变一些列。 喜欢
@Column(name="mycolumn", nullable=false, length=10)
private Long mycolumn;
和
'mycolumn' BIGINT(20)非空默认0
在MySQL。
为什么就是hbm2ddl不更新这样的事情? 而且是有可能迫使这些更新? 我想说的就是hbm2ddl删除列的默认值,改变类型的长度。
我试图更新hbm2ddl.auto =更新现有的表。
有几个表,其中的数据库列定义的实体从声明中改变一些列。 喜欢
@Column(name="mycolumn", nullable=false, length=10)
private Long mycolumn;
和
'mycolumn' BIGINT(20)非空默认0
在MySQL。
为什么就是hbm2ddl不更新这样的事情? 而且是有可能迫使这些更新? 我想说的就是hbm2ddl删除列的默认值,改变类型的长度。
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可能的值和他们做了什么?