使用休眠状态更新数据库架构
<property name="hibernate.hbm2ddl.auto">update</property>
我可以创建我的数据库模式,它会自动添加属性,约束,键等...但是更新数据库架构呢?如果我从我的实体中删除一些属性,休眠不会删除它,或者如果我更改了一些约束,休眠不会触及已经创建的约束...
那么,有一种方法可以使休眠真正更新数据库架构吗?
谢谢。
<property name="hibernate.hbm2ddl.auto">update</property>
我可以创建我的数据库模式,它会自动添加属性,约束,键等...但是更新数据库架构呢?如果我从我的实体中删除一些属性,休眠不会删除它,或者如果我更改了一些约束,休眠不会触及已经创建的约束...
那么,有一种方法可以使休眠真正更新数据库架构吗?
谢谢。
我们为自己创建了一个工具,用于创建必要的数据库列和表下拉列表,并将这些删除添加到为数据库更新生成的 SQL 中。但是我们必须向 SchemaUpdate 生成添加一些额外的功能才能使其正常工作:
@Column(length)
但是要把它们放在一起,不能以这种方式创建一个完整的工具,因为如果在代码中重命名一列怎么办?如果类型以无法自动转换的方式更改(迄今为止布尔?)该怎么办?如果无权访问重构历史记录,则无法始终传播更改。
hbm2ddl 并不意味着对模式迁移进行全面管理。最好仅将其用于对架构的累加更改,并手动编辑(生成的脚本)以进行其他任何操作。