Hibernate无法自动创建数据库表

今天在学习Hibernate的时候,通过JavaBean实体类和hbm映射文件自动创建数据库表,实体类和对象关系映射文件写的都没有错误,运行时也不报错,但是就是没生成数据库表,查了半天才发现是因为 hibernate.cfg.xml文件中缺少了一个自动创建数据库表的语句:

<property name="hibernate.hbm2ddl.auto">update</property>

因此,如果选择使用Hibernate官方推荐的通过对象和关系映射文件生成数据库表的方式进行开发,一定不要忘记在hibernate.cfg.xml文件中加上个语句。

 

hibernate.hbm2ddl.auto 是Hibernate的一个属性,有四个值:create,create-drop,update,validate;

各自的具体含义如下:

<!-- 启动时删数据库中的表,然后创建,退出时不删除数据表
 
< property name="hibernate.hbm2ddl.auto">create</property>-->
 
< !-- 启动时删数据库中的表,然后创建,退出时自动删除所有表
 
< property name="hibernate.hbm2ddl.auto">create-drop</property>-->
 
< !-- 自动修改,如果表结构与实体类不一致,那么就修改表使它们一致,数据会保留
 
< property name="hibernate.hbm2ddl.auto">update</property>-->
 
< !-- 自动校验,如果表结构与实体类不一致,那么不做任何操作,报错
 
< property name="hibernate.hbm2ddl.auto">validate</property>-->
 
 
本来这个属性的产生是为了测试数据的,我觉得利用这个自动建表非常方便。利用这段代码:
 
< property name="hibernate.hbm2ddl.auto">create</property>

 

但是,在实际开发中却会碰到无法自动创建数据库表的情况,其中一种情况是:由于实体类的属性中出现了sql关键字,hibernate将不会生成ddl来创建表结构。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值