Hibernate hbm2ddl.auto possible values and what they do?

I really want to know more about the update, export and the values that could be given to hibernate.hbm2ddl.auto
I need to know when to use the update and when not? And what is the alternative?

These are changes that could happen over DB:

  • New tables
  • new columns in old tables
  • columns deleted
  • data type of a column changed
  • a type of a column changed it attributes
  • tables have been dropped
  • values of a column has changed
  • In each case what is the best solution?


    From the community documentation:

    hibernate.hbm2ddl.auto Automatically validates or exports schema DDL to the database when the SessionFactory is created. With create-drop, the database schema will be dropped when the SessionFactory is closed explicitly.

    eg validate | update | create | create-drop

    So the list of possible options are,

  • validate: validate the schema, makes no changes to the database.
  • update: update the schema.
  • create: creates the schema, destroying previous data.
  • create-drop: drop the schema when the SessionFactory is closed explicitly, typically when the application is stopped.
  • These options seem intended to be developers tools and not to facilitate any production level databases, you may want to have a look at the following question; Hibernate: hbm2ddl.auto=update in production?


    还有“无”的无证价值完全禁用它。


    The configuration property is called hibernate.hbm2ddl.auto

    In our development environment we set hibernate.hbm2ddl.auto=create-drop to drop and create a clean database each time we deploy, so that our database is in a known state.

    In theory, you can set hibernate.hbm2ddl.auto=update to update your database with changes to your model, but I would not trust that on a production database. An earlier version of the documentation said that this was experimental, at least; I do not know the current status.

    Therefore, for our production database, do not set hibernate.hbm2ddl.auto - the default is to make no database changes. Instead, we manually create an SQL DDL update script that applies changes from one version to the next.

    链接地址: http://www.djcxy.com/p/18770.html

    上一篇: 在Java中键入列表与类型ArrayList

    下一篇: Hibernate hbm2ddl.auto可能的值和他们做什么?