我对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 =验证,我很高兴.

java – Hibernate – hibernate.hbm2ddl.auto = validate的更多相关文章

  1. Swift学习: 从Objective-C到Swift

    希望这篇文章能够帮助已经有Objective-C经验的开发者更快地学习Swift。我们熟悉的Objective-C特性在Swift中如何展现。从Objective-C到Swift的进步改进。然后值得注意的是,在Objective-C中,我们可以跨过property直接与instancevariable打交道,而在Swift是不可以的。ASwiftpropertydoesnothaveacorrespondinginstancevariable,andthebackingstoreforapropertyi

  2. Swift - 自定义函数规则说明

    如果要改变参数的值,就需要在定义函数的时候加上关键字var。789101112age=22add//无法编译add{age+=1}//可以编译add{age+=1}6,如果想要同时改变函数内外的参数值,可以利用inout关键字,同时调用函数的时候给参数加上前缀“&”addprint//23inout){}7,可以使用函数类型的参数10additive(a:ottom:auto!important;font-family:Consolas,b:a+b}//函数类型的参数printAdditiveResult

  3. Swift - 类初始化和反初始化方法init与deinit

    important;font-family:Consolas,newAge:32)print2,deinit():类反初始化方法11DBClass{conn:Connection?=()deinit{//可以做一些清理工作.conn!.close().conn=nil}db:()db=nil//设置nil后即可执行deinit()方法

  4. Swift - 下标脚本方法介绍及实例

    定义下标脚本之后,可以使用“[]”来存取数据类型的值。123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960classSubString{varstr:String=""init{self.str=str;}/**下标脚本:获取/设置部分字符串**/subscript->String{get{return.substringWithRang

  5. Swift - 分段选择控件UISegmentedControl的用法

    ]as[AnyObject]segmented=UISegmentedControlsegmented.center=self.view.centersegmented.selectedSegmentIndex=1//默认选中第二项segmented.addTarget(ottom:auto!important;font-family:Consolas,forControlEvents:UIControlEvents.ValueChanged)//添加值改变监听.view.addSubview}segme

  6. Swift - 微调器或叫步进器UIStepper的用法

    1,微调器控件包含两个按钮“+”和“-”,让使用者可以依照自己的喜欢做数值上的调整。overridefuncviewDidLoad(){super.viewDidLoad()stepper=()stepper.center=self.view.center//设置stepper的范围与初始值stepper.maximumValue=10stepper.minimumValue=1stepper.value=5.5//设置每次增减的值stepper.stepValue=0.5//设置stepper可以按住不

  7. Swift - 搜索条UISearchBar的用法

    ShowsCancelButton:勾选后,搜索框右边会出现一个“Cancel”按钮,单击会发送特殊事件。ShowsScopeBar:勾选后,会在搜索条下面出现一个分段控制器。2,下面是一个搜索条的使用样例,功能如下:在Main.storyboard界面里拖入一个SearchBar和一个TableView,SearchBar放到TableView的页眉位置初始化或者搜索条为空时,表格显示所有数据搜索条不为空时,表格实时过滤显示匹配的项目3,效果图4,代码如下123456789101112131415161

  8. Swift - 使用网格UICollectionView进行流布局

    默认是Flow流式布局。2,勾选CollectionViewController属性面板里的IsInitialViewController复选框,设置为启动视图控制器。3,在CollectionViewCell里拖入一个ImageView和Label并摆放好位置和大小,用于显示图标和名称。4,设置ImageView的tag为1,Label的2,ColletionViewCell的Identifier为designviewCell。asUICollectionViewCell//从界面查找到控件元素并设置属

  9. Swift - 网页控件UIWebView加载本地数据,文件

    overridefuncviewDidLoad(){super.viewDidLoad()//默认选中分段控件的第一项loadtype.selectedSegmentIndex=0typeChanged}@IBActiontypeChanged{letindex=sender.selectedSegmentIndexprintswitchindex{case0://在UIWebView中显示HTML内容html="欢迎来到:航歌";webview.loadHTMLString1://在UIWebView中

  10. Swift - 自定义UIActivity分享

    UIActivity可以十分方便地将文字、图片等内容进行分享,比如分享到微信、微博、发送邮件、短信等等。下面通过继承UIActivity实现定制按钮和功能,通过调用UIActivityViewController来展示分享框。,NSURL]//新建自定义的分享对象数组acts=[WeiXinActivity(),147)!important;font-family:Consolas,UIActivityTypePrintUIActivityTypeAssignToContactUIActivityType

随机推荐

  1. 基于EJB技术的商务预订系统的开发

    用EJB结构开发的应用程序是可伸缩的、事务型的、多用户安全的。总的来说,EJB是一个组件事务监控的标准服务器端的组件模型。基于EJB技术的系统结构模型EJB结构是一个服务端组件结构,是一个层次性结构,其结构模型如图1所示。图2:商务预订系统的构架EntityBean是为了现实世界的对象建造的模型,这些对象通常是数据库的一些持久记录。

  2. Java利用POI实现导入导出Excel表格

    这篇文章主要为大家详细介绍了Java利用POI实现导入导出Excel表格,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  3. Mybatis分页插件PageHelper手写实现示例

    这篇文章主要为大家介绍了Mybatis分页插件PageHelper手写实现示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

  4. (jsp/html)网页上嵌入播放器(常用播放器代码整理)

    网页上嵌入播放器,只要在HTML上添加以上代码就OK了,下面整理了一些常用的播放器代码,总有一款适合你,感兴趣的朋友可以参考下哈,希望对你有所帮助

  5. Java 阻塞队列BlockingQueue详解

    本文详细介绍了BlockingQueue家庭中的所有成员,包括他们各自的功能以及常见使用场景,通过实例代码介绍了Java 阻塞队列BlockingQueue的相关知识,需要的朋友可以参考下

  6. Java异常Exception详细讲解

    异常就是不正常,比如当我们身体出现了异常我们会根据身体情况选择喝开水、吃药、看病、等 异常处理方法。 java异常处理机制是我们java语言使用异常处理机制为程序提供了错误处理的能力,程序出现的错误,程序可以安全的退出,以保证程序正常的运行等

  7. Java Bean 作用域及它的几种类型介绍

    这篇文章主要介绍了Java Bean作用域及它的几种类型介绍,Spring框架作为一个管理Bean的IoC容器,那么Bean自然是Spring中的重要资源了,那Bean的作用域又是什么,接下来我们一起进入文章详细学习吧

  8. 面试突击之跨域问题的解决方案详解

    跨域问题本质是浏览器的一种保护机制,它的初衷是为了保证用户的安全,防止恶意网站窃取数据。那怎么解决这个问题呢?接下来我们一起来看

  9. Mybatis-Plus接口BaseMapper与Services使用详解

    这篇文章主要为大家介绍了Mybatis-Plus接口BaseMapper与Services使用详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

  10. mybatis-plus雪花算法增强idworker的实现

    今天聊聊在mybatis-plus中引入分布式ID生成框架idworker,进一步增强实现生成分布式唯一ID,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

返回
顶部