2016-07-05 1 views
0

에 적용 안한다 내 유효 기간 :ConstraintValidation 내가</p> <pre><code>@KeyValid @Valid protected List<KeyValue> keyValues; </code></pre> <p>에 대한 몇 가지 유효성 검사를 실행해야 할 객체의 목록을 가지고 있고 그것을 위해 만든 다음 주석이 목록

목록이나지도가있는 경우 컬렉션을 일괄 적으로 확인할 수있는 곳을 읽었습니다. 또는 검사기를 호출 한 후 사용자 정의 제약 조건에 의해 컬렉션의 모든 요소를 ​​주석이 설정되어 있지만 위의 코드는

실제 목록을 얻을 것입니다 귀하의 제약 조건이되지 통과
javax.validation.UnexpectedTypeException: HV000030: No validator could be found for constraint 'com.util.Validators.KeyValid' validating type 'java.util.List<com.model.KeyValue>'. Check configuration for 'keyValue' 

답변

0

요소 다음과 같은 오류가 발생합니다. Java 8과 Hibernate Validator의 최신 버전을 사용하고 있다면 type argument constraints을 사용할 수 있습니다. 귀하의 제약 조건에서 ElementType.TYPE_USE@Target에 추가하기 만하면됩니다. 형식 인수 제약 조건은 아직 Bean 유효성 검사의 공식 부분은 아니지만 다음 버전 (BV 2.0)에 포함될 예정입니다. 당신이 KeyValue에 클래스 수준의 제약으로 @KeyValid 제약을 두지 수, 또는

protected List<@KeyValid KeyValue> keyValues;

:

이 뭔가를 할 것이다?

+0

불행히도 저는 현재 Java 7을 사용하고 있지만 매개 변수 선언을 따라 주석에 대해 읽었습니다. 좋아 보인다. 하지만 Java 7에서 뭔가를 할 수있는 방법이 있으며 생성 된 소스이기 때문에 클래스에 직접 주석을 추가 할 수 없습니다. –

+1

프로그래밍 적 제약 조건 선언을 위해 Hibernate Validator API를 사용하여 제약 조건을 'KeyValue'의 클래스 정의에 추가 할 수 있습니다. 그렇게하면 소스 코드를 만질 필요가 없으며'@ Valid'를 통해 목록의 유효성을 검사 할 수 있습니다. – Gunnar

관련 문제