我刚刚开始将使用Hibernate 3.5.6.Final的应用程序升级到3.6.0.Final,并且已经进行了一些改进。我找不到最后的解决方法。
3.6.0.Final似乎在通过Hibernate保存/更新对象时自动打开Bean验证。这非常糟糕,因为我的某些测试不会费心设置所有属性- 只是不需要它们。老实说,我认为设置每个“描述”字段以及无数其他字段只是为了符合某些任意验证的意义。
这将迫使我花所有时间在所有测试中制作有效的对象(我现在有1300多个功能测试)。坦率地说,这毫无意义,因为我确信所有验证都在MVC中进行,并且目前没有其他方法可以将数据获取到数据库中。
我也不想通过两次验证我的bean来提高性能,一次是在MVC中,另一次是在Hibernate中。就我而言,这是不需要的。
有什么办法可以关闭此功能吗?我正在使用Spring和常规的Hibernate映射文件,而不是JPA(我不喜欢所有注释)。
将以下内容添加到persistence.xml:
persistence.xml
<validation-mode>NONE</validation-mode>
或将属性添加到hibernate.cfg.xml:
hibernate.cfg.xml
<property name="javax.persistence.validation.mode">none</property>
见23.1.2。配置更多选项。