在休眠中,如果我们将 hbm2ddl.auto 设置为 create/create-drop ,那么它将删除旧模式并在启动时创建新模式。这意味着,它也将删除数据?..我的怀疑是,如果它删除了所有内容,那么我们如何检索旧数据?(例如:用户注册详细信息(以及在生产环境中应该使用的正确选项是什么?
如果我错了,请纠正我。
它基本上在关闭时删除托管实体表(不是方案中的所有表(,并在重新启动时重新创建它们。根据您的问题表示;是的,数据也会从表中删除。它不会删除整个架构,而只会删除实体管理器中的实体。
在生产环境中应该使用什么正确的选项?
恕我直言,生产环境的唯一有效选择是validate
.其他所有内容都可能导致由于错误、简单错误或拼写错误而导致丢失数据/破坏数据库模式的潜在风险。
使用迁移工具进行架构更新,因为它们提供对架构的"版本控制",允许在诱饵之前对其进行测试,并还原更改。
验证现有架构
更新 - 仅在创建架构后更新架构
创建 - 每次都创建架构。
这里也是一个很好的解释Hibernate hbm2ddl.auto可能的值以及它们的作用?