49

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

  • validate
  • update
  • create
  • create-drop

所有这些值有什么作用?

Hibernate参考文档仅简要讨论了create-drop,但没有说明其他值:

hibernate.hbm2ddl.auto

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

例如 validate| update| create|create-drop

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

但是官方文档中仍然没有任何内容。

4

3 回答 3

72

对于hbm2ddl.auto财产,可能的选项列表是:

  • validate:验证模式是否匹配,不对数据库的模式进行任何更改,您可能希望将其用于生产。
  • update:更新架构以反映被持久化的实体
  • create:创建实体所需的架构,销毁任何以前的数据。
  • create-drop:像上面的create一样创建模式,但也在会话结束时删除模式。这在早期开发或测试中非常有用。
于 2014-06-25T20:04:12.737 回答
12

您提供的链接已经是官方文档。所以,到目前为止,没有什么比这更正式和更全面了。

所以我想你的问题的答案有两个:

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

但好消息是该项目是开源的,因此您拥有帮助改进它所需的一切:-)。

于 2013-12-09T13:43:34.093 回答
5

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

hibernate.hbm2ddl.auto(例如无(默认值)、仅创建、删除、创建、创建删除、验证和更新)

设置为作为 SessionFactory 生命周期的一部分自动执行 SchemaManagementTool 操作。有效选项由 Action 枚举的 externalHbm2ddlName 值定义:

none
    No action will be performed.

create-only
    Database creation will be generated.

drop
    Database dropping will be generated.

create
    Database dropping will be generated followed by database creation.

create-drop
    Drop the schema and recreate it on SessionFactory startup. Additionally, drop the schema on SessionFactory shutdown.

validate
    Validate the database schema

update
    Update the database schema
于 2017-05-01T22:15:44.030 回答