2010-12-07 45 views
11

我刚开始升级所使用Hibernate的3.5.6.Final到3.6.0.Final的应用程序,并且出现了一些hickups。最后的hickup我找不到解决方案。禁用休眠验证上保存/更新与Hibernate 3.6.0.Final

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

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

我也不想承担通过验证我的豆子两次击中性能 - 在MVC一次,然后内Hibernate的其他时间。这在我的情况下并不需要。

有没有办法我可以关闭它?我使用Spring和常规Hibernate映射文件,而不是JPA(我不喜欢所有注释)。

回答

22

以下内容添加到persistence.xml

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

或属性添加到hibernate.cfg.xml

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

查看更多选项见23.1.2. Configuration

+0

有什么办法可以通过春天做到吗?我不使用JPA,只是定期映射xml文件的hibernate。 – egervari 2010-12-07 19:39:01

2

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