Spring的验证例程是否支持Hibernate的JSR 303实现选项以实现失败快速模式?

时间:2012-06-03 00:36:04

标签: spring hibernate bean-validation hibernate-validator

8.2. Fail fast mode

我正在寻找可以在Spring中配置此选项的位置,但我不确定这是否是JSR 303的一部分,因为它是用于自己的验证器实现的Hibernate配置。这很重要,因为如果我有多个约束违规,我只希望第一个被“抛出”。

1 个答案:

答案 0 :(得分:4)

假设您正在使用Spring的LocalValidatorFactoryBean来设置验证程序,您可以在validationPropertyMap属性中指定特定于提供程序的配置属性。

Hibernate Validator的fail-fast属性的属性名是“hibernate.validator.fail_fast”,所以你要设置你的验证器:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xmlns:util="http://www.springframework.org/schema/util"
  xsi:schemaLocation="
    http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
    http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.1.xsd">

  <bean name="validator" class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean">
    <property name="validationPropertyMap">
      <util:map>
        <entry key="hibernate.validator.fail_fast" value="true"/>
      </util:map>
    </property>
  </bean>
</beans>