hbm2ddl.auto = create / create-drop会删除数据吗?

时间:2017-06-16 06:46:19

标签: java hibernate hbm2ddl

在Hibernate中,如果我们将hbm2ddl.auto设置为create / create-drop,那么它将删除旧模式并在启动时创建新模式。这意味着,它还会删除数据吗?我怀疑是否删除了所有内容,那么我们如何才能检索旧数据呢? (例如:用户注册详细信息)以及在生产环境中应该使用的正确选项是什么?

如果我错了,请纠正我。

3 个答案:

答案 0 :(得分:1)

基本上,它会在关机时删除受管理的实体表(并非计划中的所有实体表),并在启动时重新创建它们。根据您的问题的意思;是的,数据也从表中删除。它不会删除整个架构,而只会删除实体管理器中的实体。

答案 1 :(得分:0)

  

在生产环境中应该使用的正确选项是什么?

恕我直言,生产环境唯一有效的选项是validate。由于错误配置,简单的错误或拼写错误,其他所有内容都可能导致丢失数据/破坏数据库架构的潜在风险。

使用迁移工具进行架构更新,因为它们提供了"版本控制"在你的模式允许它在depoyment之前进行测试,并恢复更改。

答案 2 :(得分:0)

验证 - 现有架构

更新 - 仅在创建后更新架构

每次都创建模式。

此处还有一个很好的解释Hibernate hbm2ddl.auto possible values and what they do?