2016-08-29 5 views
0

봄 그룹과 검증 호출하고 나는 내가 대상 개체에 정의 된 유효성 검사 그룹을 활용해야합니다. javadoc의 유효성을 검사의이 ...SmartValidator는 - 수동 4.3.2</p> <p>내가 수동) SmartValidator.validate를 (호출 할 필요는

"이 변종은()하는 경우, 제공 힌트 객체가 주석 인수해야 (A JSR-303 공급 업체에 대한 검증 힌트 같은 검증 그룹을 지원 말한다 클래스 유형의). "

void validate(Object target, 
      Errors errors, 
      Object... validationHints) 

는 어떤 이유로, 나는 "validationHints을"사용에 대한 많은 정보와 예제를 찾을 수 없습니다. 그래서 나는 다음과 같은 것을 시도해 왔습니다 ...

validator.validate(targetEntity, errors, new Class[]{ValidationGroup1.class}); 

validator.validate(targetEntity, errors, ValidationGroup1.class); 

지금까지, 그것은 단지 내 그룹을 완전히 무시합니다. 항상 모든 유효성 검사기를 호출합니다. 어떤 아이디어?

감사합니다!

===================================

이 업데이트 : javadoc의는이 말한다 ..

"참고 :. 검증 힌트가이 방법은 단지 그 일반 대해서 Validator.validate (개체 오류) 형제처럼 행동해야하는 경우 실제 대상 검사기에 의해 무시받을 수 있습니다"

이것은 무슨 일이 일어나고있는 것처럼 들립니다. 그러나 그것을 무시할 수있는 이유에 대해서는 단서를주지 못합니다.

답변

1

좋습니다. '대답'은 스프링을 사용하지 않는 것 같습니다. 여기 내 해결 ... 그럼 난이 봄 FieldErrors로 설정 심자

import javax.validation.Validator; 
Validator validator = Validation.buildDefaultValidatorFactory().getValidator(); 
Set<ConstraintViolation> violations = validator.validate(targetEntity, new Class[]{group1.class, group2.class}); 

는 (모든 것이 이미 봄을 실행하도록 구성되어 있기 때문에)입니다. 일종의 clusterf ***,하지만 적어도 지금은 작동합니다.