我有一个名为Person的表,我已经在hibernate中映射了我已经有一些我不想放松的数据了。我需要添加一个名为address的新列,不知道如何在hibernate中做到这一点吗?
先谢谢..
答案 0 :(得分:7)
如果当前表是由Hibernate生成的,则只需在地址列的java实体类中添加address属性即可。然后将hibernate.hbm2ddl.auto
属性设置为update
,hibernate将在下次构建SessionFactory
时自动创建此列。 hibernate.hbm2ddl.auto
为update
时,Hibernate不会更改数据库中的任何数据存储。
或者,您可以手动发出SQL来更改表结构,然后在地址列的java实体类中添加地址属性。
答案 1 :(得分:1)
在将hibernate.hbm2ddl.auto
设置为update
之前,您还应该阅读其他SO问题/答案:Hibernate: hbm2ddl.auto=update in production?。
答案 2 :(得分:0)
可能您不会被迫使用Hibernate来创建/更新数据库架构。我假设你的配置中有这样的东西:
<property name="hibernate.hbm2ddl.auto" value="create-drop" />
只需将值更改为&#34;验证&#34;,对映射执行更改并单独执行ALTER TABLE语句。
其他选择是使用&#34;更新&#34;让Hibernate弄清楚如何更新表结构。我建议将它保存在您手中,只需手动执行DDL SQL。