使用Hibernate 3.6.0.Final在保存/更新时禁用Hibernate验证

时间:2010-12-07 19:27:54

标签: hibernate validation

我刚刚开始将使用Hibernate 3.5.6.Final的应用程序升级到3.6.0.Final,并且已经有几个hickup。最后一个hickup我找不到解决方案。

3.6.0.Final似乎在通过Hibernate保存/更新对象时自动启用bean验证。这是非常糟糕的,因为我的一些测试不打扰设置所有属性 - 它们只是不需要。老实说,我没有意识到设置每个“描述”字段和无数其他字段只是为了遵守一些任意验证。

这将迫使我花费数小时在我的所有测试中制作有效的对象(我现在有超过1300个功能测试)。坦率地说,这将毫无意义,因为我确信所有验证都在MVC中进行,目前没有其他方法可以将数据导入数据库。

我也不希望通过两次验证我的bean来实现性能损失 - 一次在MVC中,然后在Hibernate中另一次。在我的情况下,这根本不需要。

我有办法解决这个问题吗?我使用的是Spring和常规的Hibernate映射文件,而不是JPA(我不喜欢所有的注释)。

2 个答案:

答案 0 :(得分:23)

将以下内容添加到persistence.xml

<validation-mode>NONE</validation-mode>

或将该属性添加到hibernate.cfg.xml

<property name="javax.persistence.validation.mode">none</property>

有关更多选项,请参阅23.1.2. Configuration

答案 1 :(得分:2)

hibernate.validator.autoregister_listeners属性设置为false。您也可以将hibernate.validator.apply_to_ddl设置为false。