我真的很想了解有关更新、导出以及可以赋予的值的更多信息hibernate.hbm2ddl.auto
我需要知道何时使用更新,何时不使用?还有什么替代方案呢?
这些是数据库上可能发生的变化:
- 新表
- 旧表中的新列
- 列已删除
- 列的数据类型已更改
- 列的类型改变了它的属性
- 桌子被丢弃
- 列的值已更改
在每种情况下,最好的解决方案是什么?
来自社区文档 https://docs.jboss.org/hibernate/orm/6.2/userguide/html_single/Hibernate_User_Guide.html#configurations-hbmddl:
hibernate.hbm2ddl.auto 在创建 SessionFactory 时自动验证架构 DDL 或将架构 DDL 导出到数据库。使用 create-drop,当 SessionFactory 显式关闭时,数据库架构将被删除。
例如验证 |更新 |创建 |创建-删除
所以可能的选项列表是,
-
validate:验证架构,不对数据库进行任何更改。
-
仅创建:将生成数据库创建。
-
drop:将产生数据库删除。
-
update:更新架构。
-
create:创建模式,破坏以前的数据。
-
创建-删除:当 SessionFactory 显式关闭时(通常是在应用程序停止时),删除架构。
-
none:对架构不执行任何操作,也不对数据库进行任何更改
这些选项似乎旨在成为开发人员工具,而不是促进任何生产级数据库,您可能想看看以下问题;Hibernate:hbm2ddl.auto=生产中更新? https://stackoverflow.com/questions/221379/hibernate-hbm2ddl-autoupdate-in-production
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)