여러 개의 (사용자 지정) 내부 제약 조건과 하나의 클래스 수준 제약 조건이있는 Bean 클래스가 있습니다. 클래스 수준 제약 조건 이전에 내부 제약 조건을 확인하고 싶습니다. 코드는 다음과 같습니다Java Bean 유효성 검사 : 클래스 수준 제약 조건이있는 GroupSequence
@GroupSequence({ Inner.class, NewSlotBean.class })
@TotalBeanValid(groups = NewSlotBean.class)
public class NewSlotBean {
@DayMonthYearString(groups = Inner.class)
private String slotDay;
@TimeString(groups = Inner.class)
private String slotBegin;
@LengthString(groups = Inner.class)
private String slotLength;
}
(Inner
주위 어딘가에 누워있는 단지 빈 인터페이스입니다).
그러나이 클래스를 실행하려고하면 클래스 수준 제약 조건이 전혀 유효성이 검사되지 않습니다. 나는 (Outer
은 임의의 인터페이스 인 상태)
@GroupSequence({ Inner.class, Outer.class })
같은 GroupSequence을 정의 할 때, 나는 예외를 얻을 :
javax.validation.GroupDefinitionException: ...*.beans.NewSlotBean must be part of the redefined default group sequence.
합니까 S/O를 확인하는 방법을 알고 클래스 수준 제약 조건은 내부 제약 조건 다음에 유효합니까? (!. 이것은 내가 잠시 후 터지는 무작위 문제를 했어 기본으로하지 나타납니다)
훌륭한 대답 그냥 개선 제안 : '@GroupSequence ({NewSlotBean.class, ClassLevel.class}) @TotalBeanValid (그룹 = ClassLevel.class)가 검증 다른 방법으로 주위 그룹에 아마 더 낫다 ''NewSlotBean' 클래스에서 'InnerGroup' 검증 그룹과 필드 레벨 그룹 할당을 제거하면 필드 유효성 검사가 자동으로 기본 유효성 그룹에 지정됩니다. 적은 코드, 더 깨끗한. – jannis