Hibernate配置属性hibernate.hbm2ddl.auto
本文最后更新于 2236 天前,其中的信息可能已经有所发展或是发生改变。

最近团队同事在配置文件上用到了hibernate.hbm2ddl.auto,把配置文件下关联的bean对应的数据表给清空了,问题不算很严重影响也只是开发测试环境的数据,可是也需要自己记录下吧。虽然现在很多公司越来越少用到Hibernate.而转到Mybatis,但是自己现在维护开发的两个系统项目都用到hibernate,避免犯错误,因为恢复这几个表都弄了快一天..心累的底层开发仔…


前言

我们在本地作开发时或者项目刚开始时,经常会定义好实体,继而在相应的数据库中建表。而这样建表继烦琐,浪费时间,又容易出错。而这时候Hibernate的hibernate.hbm2ddl.auto配置项会帮助我们根据定义好的实体,自动创建,更新,验证数据库表…

hibernate.cfg.xml 中hibernate.hbm2ddl.auto配置节点如下:

<properties>   
  <!-- 没有必要的话,最好注销此函数 -->
  <property name="hibernate.hbm2ddl.auto" value="create" />
</properties>

hibernate.hbm2ddl.auto有好几个属性项:

1.none(默认)

在Hiberante启动时,不会执行任何操作

2.create-only

在Hibernate启动时,对实体仅会执行建表语句,即使实体对应的表已经存在了,也会重复执行建表语句

3.drop

在Hiberante启动时,对实体对应的表执行删除语句,即使实体不存在对应的表,都会执行表删除语句

4.create

在Hiberante启动时,对实体对应的表执行删除语句,然后再执行建表语句

5.create-drop

在Hibernate启动时,对实体对应的表执行删除语句,然后执行建表语句。在Hibernate关闭时,实体对应的表执行删除语句

6.validate

对实体和对应的表进行校验

7.update

实体对应的表如果不存在则会创建。如果实体中新增加了字段,会在相应的表中增加一列

怎么多参数,以前学习Hibernate时候,自己用到就以下几个:

validate:每次加载hibernate时,验证创建数据库表结构

create:每次加载hibernate,重新创建数据库表结构,这就是导致数据库表数据丢失的原因

create-drop:每次加载hibernate时创建,退出则是删除表结构

update:每次加载hibernate时更新表,不存在则创建,省去了手动更新数据库表的麻烦(此时事故原因)

ps:hibernate.hbm2ddl.auto配置项会对这个配置文件下所有的映射表都起作用!!!!!(慎用)

总结

1.请慎重使用hibernate.hbm2ddl.auto,没必要就不要随便用

2.如果发现数据库表丢失,请检查配置了hibernate.hbm2ddl.auto

3.一般情况下都是使用validate或者update。 如果希望基于代码来构建数据库表结构,就可以使用update.其余的选项使用较少,尤其会删除掉数据库中的数据

评论

  1. Windows Chrome 70.0.3538.110
    6 年前
    2018-12-05 15:08:01

    插入付款码做什么。

    • 博主
      大雄
      Windows Chrome 63.0.3239.132
      6 年前
      2018-12-05 18:51:31

      不然要放个红包二维码吗?

    • 博主
      大雄
      Windows Chrome 63.0.3239.132
      6 年前
      2018-12-10 9:34:11

      感觉我真的想再放一个红包二维码阿 哈哈哈

      • 郭良俊只狗
        Windows Chrome 71.0.3578.80
        6 年前
        2018-12-10 9:34:51

        什么几把玩意?

  2. qq
    Windows Chrome 63.0.3239.132
    6 年前
    2018-12-09 22:09:26

    邮箱测试

    • 博主
      qq
      Windows Chrome 63.0.3239.132
      6 年前
      2018-12-09 22:10:34

      邮箱测试回复

  3. Windows MSIE 11.0
    4 年前
    2020-12-08 2:04:05

    邮箱测试

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇