jpa的<property name=“hibernate.hbm2ddl.auto”>create</property>–>详解

本文详细解析了Hibernate配置属性hbm2ddl.auto的四种设置:create、create-drop、update和validate,分别对应启动时创建并删除、创建但不删除、自动更新表结构以匹配实体类和校验表结构一致性。文章还提到了实体类属性出现SQL关键字可能导致的建表失败问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先介绍其中的一个属性hbm2ddl.auto,这个就是这个方案的核心属性,有四个值:create,create-drop,update,validate;

 

<!-- 启动时删数据库中的表,然后创建,退出时不删除数据表

 

<property name=“hibernate.hbm2ddl.auto”>create</property>–>

 

<!–

也表示创建,只不过再系统关闭前执行一下drop

–>

 

<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来创建表结构。


转载自:http://blog.sina.com.cn/s/blog_a0e7e34c01017rdm.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值