问题
I am looking at the Hibernate hbm2ddl.auto
configuration property and its possible values:
validate
update
create
create-drop
What do all these values do?
The Hibernate Reference Documentation only talks briefly about create-drop
, but doesn't say anything about the other values:
hibernate.hbm2ddl.auto
Automatically validates or exports schema DDL to the database when the
SessionFactory
is created. Withcreate-drop
, the database schema will be dropped when theSessionFactory
is closed explicitly.e.g.
validate
|update
|create
|create-drop
I found very useful explanations in these Stack Overflow questions:
- Hibernate hbm2ddl.auto possible values and what they do?
- Schema is not dropped on hbmddl.auto = create.drop
But still nothing in the official documentation.
回答1:
The link you provided is already the official documentation. So, there's nothing more official and comprehensive as-of today.
So I guess the answer to your question is two-fold:
- either file an enhancement request in the Hibernate issue tracker (better with a proposal)
- or read the corresponding code
I know this isn't the perfect answer you dreamt about, but this is actually all you have today.
But the good news is that the project is open-source, so you have all you need to help improve it :-).
回答2:
For hbm2ddl.auto
property the list of possible options is:
- validate: validate that the schema matches, make no changes to the schema of the database, you probably want this for production.
- update: update the schema to reflect the entities being persisted
- create: creates the schema necessary for your entities, destroying any previous data.
- create-drop: create the schema as in create above, but also drop the schema at the end of the session. This is great in early development or for testing.
回答3:
The documentation has been updated to include this information. Here is a link to the official, current documentation for this feature.
hibernate.hbm2ddl.auto (e.g. none (default value), create-only, drop, create, create-drop, validate, and update)
Setting to perform SchemaManagementTool actions automatically as part of the SessionFactory lifecycle. Valid options are defined by the externalHbm2ddlName value of the Action enum:
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
来源:https://stackoverflow.com/questions/18077327/hibernate-hbm2ddl-auto-possible-values-and-what-they-do