如何使用Hibernate验证模式(所有错误)

6
我正在使用带有hbm文件的Hibernate 3.2.6。当使用选项hibernate.hbm2ddl.auto=validate时,我只收到第一个验证错误。是否有一种方法可以显示模式中的所有错误?
例如: City.hbm.xml文件具有名为“name”的属性。当我从表中删除该列时,我会收到以下错误消息: Missing column: name in nfe.dbo.city 目前为止还好。但是,City.hbm.xml文件还具有另一个名为state的属性。当我从表中删除'state'列时,我会收到相同的错误消息(Missing column: name in nfe.dbo.city),并希望收到模式中的所有错误(而不仅仅是第一个)。
2个回答

3

由于代码的编写方式,无法使其显示模式中的所有错误。如果您阅读Configuration.validateSchema()的代码,您将看到它在发现第一个错误时抛出HibernateException,从而结束验证过程。


谢谢,那我可能会更改那段代码或者实现自己的验证流程。 - Ivan Bosnic

3

我刚刚创建了一个自定义的配置类,以便将所有模式违规情况汇总在一起。发布gist,可能对其他人有用 :)


1
如果能将此功能添加到Hibernate Maven插件中,那将是非常棒的事情...等我有时间了,我可能会尝试解决这个问题。如果我完成了,我会进行更新。 - Justin Smith

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接