Hibernate's hbm2ddl tool & hibernate.hbm2ddl.auto options

来源:http://www.8qiu.cn/archives/1339


Hibernate hbm2ddl是用来创建,更新或者验证数据库sehema的工具,它会读取Hibernate mappings configuration(*.hbm)自动生成SQL脚本。Hibernate框架实现了JPA,项目里的*.hbm由annotation代替,所以hibernate的项目不一定都有*.hbm。好消息是hbm2ddl也支持JPA,它会分析annotation,然后生成对应的脚本。
另外命令行和Ant都能调用hbm2ddl。

 

hibernate.hbm2ddl.auto有四个固定选项:create, create-drop, update,validate

5

四个选项的用途

create

当entity manager factory被创建时候自动创建数据库,如果根目录存在一个import.sql,Hibernate会执行的这个SQL。值得注意的是执行SQL之前都是先删除原先的schema,包括表,约束等等。

create-drop

它包含两个功能create和drop,create同前面的create。

drop功能,当entity manager factory被关闭时,schema也会跟着删除。

update

根据项目里的*.hbm或者JPA Entity生成更改SQL脚本, 然后执行该脚本修改数据库结构。update是不会执行import.sql,所以他只修改结构,不会执行import.sql。有可能会执行失败,比如添加一个不能为null的列到已经包含有数据的表中。

validate

根据项目里的*.hbm或者JPA Entity验证schemm,不更改schema也不会执行import.sql。

 

Mode

Reads

import.sql

Alters Database

Structure

Comments

update

No

Yes

 
create

Yes

Yes

Empties the database before creating it
create-drop

Yes

Yes

Drops the database when the SessionFactory is closed
validate

No

No

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值