Hibernate之hibernate.hbm2ddl.auto

详细介绍:http://www.jroller.com/eyallupu/entry/hibernate_s_hbm2ddl_tool

hibernate.hbm2ddl.auto:指定应用程序在运行时,当产生SessionFactory实例化时对是否有自动检索数据结构,或者将数据库schema的DDL导出到数据库。可选值有:validate(检查数据库结构)、update(数据库结构发生变化时修改)、create(建数据库schema的DDL导出数据库)、create_drop(在SessionFactory实例化时创建时将数据库schema的DDL导出数据库结构,在SessionFactory被显示关闭时将数据库删除)

对于 hbm2dll.auto 各个取值的意义如下:

        1.create-drop : hibernate一开始就发送一个drop语句,再执行create语句创建表,当sessionFactory关闭时又执行drop语句删除表。结果就是,当表存在时,首先会被drop掉,然后又创建,最终被drop,如果表不存在,一开始虽然hibernate还是会发送drop语句,当时因为表不存在而drop失败。

        2.create:hibernate首先会发送一个drop语句,如果表存在则会被drop掉,然后hibernate再发送create语句创建表。 

        3.update:hibernate会首先查询数据库看是否存在此表,如果存在则不管,如果不存在则会先发送一个create语句创建一个表。

      4.validate:每次插入数据之前都会验证数据库中的表结构和hbm文件的结构是否一致。如果表不存在,则报错。

相关推荐