Hibernate hbm2ddl.auto 配置的可能值是什么,它们有什么作用

2022-08-31 03:57:05

我真的很想知道更多关于更新,导出和可以提供给的值
,我需要知道什么时候使用更新,什么时候不使用?还有什么替代方案呢?hibernate.hbm2ddl.auto

这些是数据库上可能发生的更改:

  • 新表
  • 旧表中的新列
  • 已删除列
  • 列的数据类型已更改
  • 列的一种类型更改了其属性
  • 表已删除
  • 更改的列的值

在每种情况下,最佳解决方案是什么?


答案 1

来自社区文档

hibernate.hbm2ddl.auto 在创建 SessionFactory 时自动验证架构 DDL 或将其导出到数据库。使用创建-删除,当显式关闭 SessionFactory 时,数据库架构将被删除。

例如,验证|更新|创建|创建-删除

因此,可能的选择列表是,

  • 验证:验证架构,不对数据库进行任何更改。
  • 更新:更新架构。
  • 创建:创建架构,销毁以前的数据。
  • 创建-删除:在显式关闭 SessionFactory 时(通常是在应用程序停止时)删除架构。
  • none:不对架构执行任何操作,不对数据库进行任何更改

这些选项似乎是开发人员的工具,而不是为了方便任何生产级数据库,您可能希望看一下以下问题;Hibernate: hbm2ddl.auto=update in production?


答案 2

还有未记录的值“none”来完全禁用它。


推荐