2012-01-30 1 views
1

경우는 다음의 두 가지 제약 JSR303 유효성 검사 : 두 개 이상의 유효성 검사 제약 조건 : 처음 오류를 반환 한 후 두 번째 평가하지 않음? 유사한 첫 번째, 두 번째 (@Pattern)를 평가하지 행 (@NotNull) (= 오류를 반환)

@NotNull 
@Pattern (pattern="foobar") 
private String myFooBarMember; 

가능성이

주어진? 또는 JSR303은 항상 모든 제약 조건을 평가합니까? 첫 번째 경기가 끝난 후 두 번째 경기를 평가하지 못할 가능성이있는 경우 어떻게 할 수 있는지 기재하십시오.

대단히 감사합니다!

+0

이 경우'group' 매개 변수를 사용하는 것이 좋습니다. 그룹의 제약 조건 중 하나가 실패하면 다른 변수는 평가되지 않습니다. –

답변

1

글쎄, 나는 JSR 303 전문가가 아니지만, 나는 1.0 FR에서 발췌을 발견했습니다

2.3. 제약 구성

참고 :

작곡 제약이 실패하고 구성 제약 가 @ReportAsSingleViolation로 표시되는 경우, 콩 검증 공급자가이 구성 제약에 대한 다른 구성의 제약을 처리하지 무료 경우.

하고 :

3.5. 주어진 검증 제약은 이미이 검증 루틴 동안 처리 되지 않는 한

    도달 가능한 모든 필드에 대한
  • , 일상 검증 대상 그룹을 일치 (슈퍼 클래스에 표현 된 것을 포함) 모든 필드 레벨의 검증을 실행 주어진 그룹 내비게이션 경로 (3.5.1 절 참조).

따라서 후자의 경우 기본적으로 모든 유효성 검사기가 실행됩니다.

전부터 나는 (제약 구성)이 당신이 원하는 것을 성취하는 한 방법 일 것이라고 말하고 싶습니다. Bean Validation implementor에 의존하고 있을지도 모르지만 (그래서 아마), 독점적 인 문서를 읽을 필요가 있습니다.