将列添加到Hibernate数据表中

问题描述:

我的应用程序中有一个类正在被Hibernate序列化,并且在我的数据库的相应表中已经有好几行。如果我需要在创建表之后向这个类添加字段,是否需要做特别的事情?放下桌子让Hibernate重新开始?或者我可以只添加一个正确注释的字段,并让休眠完成剩下的工作?将列添加到Hibernate数据表中

+0

对于已保存的对象,新字段的值应该是多少? – Mark

+0

那是我的一个难题。 Hibernate会只填写一个合理的默认值,比如'null'?只要Hibernate没有抱怨或崩溃,我可以手动填写该列的行数不多。 – andronikus

+0

您可以将任何合法的数值放入数据单元中。 Hibernate并不关心那里有什么。只要您没有修改创建的表,数据库就会确定限制。 – jeffb

Hibernate可以代替更新表,如果配置:

<prop key="hibernate.hbm2ddl.auto">update</prop> 

参见文档:http://docs.jboss.org/hibernate/core/3.3/reference/en/html/session-configuration.html。细节见表3.7。

@Aaron是对的。唯一的问题可能是如果其中一个新列有非空约束。如果是这样,您可以使用列定义属性给该字段一个默认值。

请参阅这里https://forum.hibernate.org/viewtopic.php?f=1&t=982553&view=previous和这里http://docs.jboss.org/hibernate/annotations/3.5/reference/en/html_single/了解更多详情。