Hibernate hbm2ddl.auto,可能的值以及它们的作用

时间:2013-08-06 10:15:55

标签: hibernate orm properties hbm2ddl

我正在查看Hibernate hbm2ddl.auto配置属性及其可能的值:

  • validate
  • update
  • create
  • create-drop

所有这些价值观做了什么?

Hibernate Reference Documentation仅简要介绍了create-drop,但没有说明其他值:

  

hibernate.hbm2ddl.auto

     

创建SessionFactory时,自动验证或将架构DDL导出到数据库。使用create-drop时,将在SessionFactory显式关闭时删除数据库架构。

     

例如 validate | update | create | create-drop

我在这些Stack Overflow问题中找到了非常有用的解释:

但官方文件中仍然没有。

3 个答案:

答案 0 :(得分:61)

对于hbm2ddl.auto属性,可能的选项列表为:

  • 验证:验证架构是否匹配,不对数据库的架构进行任何更改,您可能希望将其用于生产。
  • 更新:更新架构以反映要保留的实体
  • 创建:创建实体所需的架构,销毁以前的所有数据。
  • create-drop :按照上面的创建创建架构,但也会在会话结束时删除架构。这在早期开发或测试中非常有用。

答案 1 :(得分:11)

您提供的链接已经是官方文档。所以,今天没有任何更正式和全面的内容。

所以我猜你的问题的答案是双重的:

我知道这不是你梦寐以求的完美答案,但实际上这就是你今天所拥有的。

但好消息是该项目是开源的,所以你需要帮助改进它: - )。

答案 2 :(得分:1)

文档已更新,包含此信息。以下是此功能的官方当前文档的链接:

http://docs.jboss.org/hibernate/orm/current/userguide/html_single/Hibernate_User_Guide.html#configurations-hbmddl