0
hibernate-validator 4.x를 사용한 빈 유효성 검사에 문제가 있습니다. 사용자 정의 유효성 검사기 Interdate가 전혀 호출되지 않았습니다.자바 빈 검증, hibernate-validator 4.x 및 ConstraintValidator 관련 문제
내 이상 simplificated 코드가 누락 무엇 최대 절전 문서 http://docs.jboss.org/hibernate/validator/4.2/reference/en-US/html/validator-customconstraints.html
처럼?
의 pom.xml :
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.beginningee6.sample</groupId>
<artifactId>beanvalidation1</artifactId>
<packaging>jar</packaging>
<version>1.0.0-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
<version>4.2.0.Final</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
<version>1.6.4</version>
</dependency>
</dependencies>
<build>
<finalName>validation-jpa1</finalName>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
</plugins>
</build>
모든 자바 코드 :
import java.util.Set;
import javax.validation.Constraint;
import javax.validation.ConstraintValidator;
import javax.validation.ConstraintValidatorContext;
import javax.validation.ConstraintViolation;
import javax.validation.Validation;
import javax.validation.Validator;
public class M {
@Constraint(validatedBy = Interdate.class)
public @interface InterdateI {
String message() default "Boum";
String[] groups() default {};
}
class Interdate implements ConstraintValidator<InterdateI, Book> {
@Override
public void initialize(InterdateI constraintAnnotation) {
}
@Override
public boolean isValid(Book value, ConstraintValidatorContext context) {
return false;
}
}
public class Book {
@InterdateI
private String a;
}
public void i() {
Validator validator = Validation.buildDefaultValidatorFactory().getValidator();
Book book = new Book();
Set<ConstraintViolation<Book>> constraintViolations = validator.validate(book);
System.out.println(constraintViolations.size());
}
public static void main(String[] args) {
new M().i();
}
}