加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – Hibernate – hibernate.hbm2ddl.auto = validate

发布时间:2020-12-14 05:37:26 所属栏目:Java 来源:网络整理
导读:我对hibernate.hbm2ddl.auto =验证的实际工作感兴趣,我正在努力寻找全面的文档. 我们最近发现生产系统受到了http://opensource.atlassian.com/projects/hibernate/browse/HHH-3532的影响(Hibernate的名字匹配外键,而不是签名,因此会为您重新创建),而hibernat
我对hibernate.hbm2ddl.auto =验证的实际工作感兴趣,我正在努力寻找全面的文档.

我们最近发现生产系统受到了http://opensource.atlassian.com/projects/hibernate/browse/HHH-3532的影响(Hibernate的名字匹配外键,而不是签名,因此会为您重新创建),而hibernate.hbm2ddl.auto = update正在从我们的下一个版本中删除.

我会很高兴摆脱hibernate.hbm2ddl.auto,并自己管理我们的数据库.但是,并不是所有的同事都分享了这个世界观,有些则热衷于加入hibernate.hbm2ddl.auto = validate.

我担心这会遇到同样的问题,我有兴趣找到更多有关该验证实际工作的文档. Hibernate社区文档(http://docs.jboss.org/hibernate/core/3.3/reference/en/html/session-configuration.html)真的只是引用了这些值.

有没有人有任何良好的文档指针,或在生产系统中使用验证的任何现实生活经验?

解决方法

I’m concerned this will hit the same problem and I’m interested in finding more documentation about how this validation actually works.

在我看来,最好的文档是您可以检查的源代码,以确定发生的是什么.相关的方法是org.hibernate.tool.hbm2ddl.SchemaValidator#validate().

我快速浏览了代码,我不认为SchemaValidator验证数据库中的外键:它检查表,列,id生成器的存在,但不检查外键.对宠物数据库的测试似乎证实了这一点:删除FK约束不会破坏模式验证(换句话说,验证器检查应用程序是否可以运行,而不是引用完整性).

现在,HHH-3532被标记为固定的,为什么不升级到较新版本的Hibernate,或者如果更改Hibernate的版本太重,为什么不自己应用补丁HHH-3532?

总而言之,我不使用hibernate.hbm2ddl.auto = update更新生产数据库,我使用更改脚本.但我使用hibernate.hbm2ddl.auto =验证,我很高兴.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读