HibernateValidator group

最近公司开发平台,要求有HibernateValidator验证,记录一下学习过程,主要理解一下Group校验

附上官网文档 

1、Meavn依赖

<dependency>
	    <groupId>org.hibernate.validator</groupId>
	    <artifactId>hibernate-validator</artifactId>
	    <version>6.0.10.Final</version>
    </dependency>
2、
public class Car {
	
    @NotNull
    private String manufacturer;

    @NotNull
    @Size(min = 2, max = 14)
    private String licensePlate;

    @Min(2)
    private int seatCount;
    
    @AssertTrue(
            message = "The car has to pass the vehicle inspection first",
            groups = CarChecks.class
    )
  private boolean passedVehicleInspection;
 }
//get/set

3、定义Group constraints,其实很简单就是定义一个接口

public interface CarChecks {

}

4、验证

public class GroupTest {

	 private static Validator validator;

	    @BeforeClass
	    public static void setUpValidator() {
	        ValidatorFactory factory = Validation.buildDefaultValidatorFactory();
	        validator = factory.getValidator();
	    }
	    
	    @Test
	    public void testCarNoCarChecks() {
	    	
	    	Car car = new Car( "Morris", "DD-AB-123", 2 );
	    	car.setPassedVehicleInspection(false);
	    	Set<ConstraintViolation<Car>> constraintViolations = validator.validate( car);
	    	assertEquals( 0, constraintViolations.size() );

	    	
	    }
	    
	    @Test
	    public void testCarHasCarChecks() {
	    	
	    	Car car = new Car( "Morris", "DD-AB-123", 2 );
	    	car.setPassedVehicleInspection(false);//此处不写也无妨,boolean默认值就是false
	    	Set<ConstraintViolation<Car>> constraintViolations = validator.validate( car,CarChecks.class);
	    	assertEquals( 0, constraintViolations.size() );

	    }
	
}

5、分别得到的结果 上图

testCarNoCarChecks结果

testCarHasCarChecks 结果

猜你喜欢

转载自blog.csdn.net/qq_26837711/article/details/80837705