2014-12-24 4 views
1

와 무시 나는 두 콩이있다.@Valid 주석의 유효성 검사 그룹

유효성 검사 그룹을 사용하지 않고 bean의 유효성을 검사하려고 할 때 예상대로 작동합니다.

Set<ConstraintViolation> cv = validator.validate(entitie); 

user.name, user.password, user.details.email 을 확인합니다. 내가 정의와 ChangeCheckGroup 확인하는 그룹을 검사기를 사용하려고 할 때

는하지만, 그것은 @Valid 주석을 무시합니다.

Set<ConstraintViolation> cv = validator.validate(entitie, groups); 

user.password을 확인, 존재
user.details.email 없이 검사는 것이다.

유효성 검사 그룹을 사용하여 보유한 빈과 빈을 검증하는 방법이 있습니까?

+0

당신의 예제가 저에게 효과적입니다 (이메일은 맞춤 그룹으로 확인되었습니다). hibernate-validator의 어떤 버전을 사용하고 있습니까? –

+0

세부 정보가 두 시나리오에서 모두 null이 아닌지 확인 했습니까? –

답변

1

시나리오가 Detail 클래스의 내부 유효성 검사를 건너 뛸 수있는 유일한 방법은 User 개체의 details 필드가 null로 설정되어있는 것입니다. Validator는 여전히 세부 정보 null 값을 유효한 그룹으로 간주합니다 (모든 그룹에서 해당 필드에 대해 특별히 @NotNull 주석을 지정하지 않았으므로).

따라서 Detail 클래스 내의 Bean 유효성 검사 주석은 무시됩니다. User 내에서 속성 세부 정보를 올바르게 초기화하면 지정된 그룹에 따라 유효성이 검사됩니다.

+1

예, 동의해야합니다. 그건 실수 였어. 유효성 검사를 원하는 필드에 ** @ NotNull **을 설정하지 않았다. 고맙습니다. –

관련 문제