Hibernate Validator 6.0.7.Final 之一(声明Bean约束之约束的继承性之二)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_17586821/article/details/80035891

承接Hibernate Validator 6.0.7.Final 之一(声明Bean约束之约束的继承性之一)。本文使用field级别的约束来测试一下约束的继承性。

  • 父类
public class Car {

    @NotNull(message = "制造商不能为空")
    private String manufacture;

    @Min(value = 2, message = "座位数量不能小于2")
    private int seatCount;

    public String getManufacture() {
        return manufacture;
    }

    public void setManufacture(String manufacture) {
        this.manufacture = manufacture;
    }

    public int getSeatCount() {
        return seatCount;
    }

    public void setSeatCount(int seatCount) {
        this.seatCount = seatCount;
    }
}
  • 子类
public class RentalCar extends Car {

    @NotNull(message = "租赁站不能为空")
    private String rentalStation;

    @Max(value = 5, message = "座位数量不能大于5")
    private int seatCount;

    public String getRentalStation() {
        return rentalStation;
    }

    public void setRentalStation(String rentalStation) {
        this.rentalStation = rentalStation;
    }

    @Override
    public int getSeatCount() {
        return seatCount;
    }

    @Override
    public void setSeatCount(int seatCount) {
        this.seatCount = seatCount;
    }
}
  • 测试
    @Test
    public void inheritanceConstraintVer2Test() {
        com.qs.mmeng.hibernate.validator.constraints.declare.inheritance.ver2.RentalCar rentalCar =
                new com.qs.mmeng.hibernate.validator.constraints.declare.inheritance.ver2.RentalCar();
        // 违反了来自父类的约束
        rentalCar.setManufacture(null);
        rentalCar.setRentalStation(null);
        // 父类和子类的约束可以累加
        rentalCar.setSeatCount(6);
        Set<ConstraintViolation<com.qs.mmeng.hibernate.validator.constraints.declare.inheritance.ver2.RentalCar>> constraintViolations =
                validator.validate(rentalCar);
        logger.info("违反的约束的个数:{}", constraintViolations.size());
        for (ConstraintViolation<com.qs.mmeng.hibernate.validator.constraints.declare.inheritance.ver2.RentalCar> constraintViolation : constraintViolations) {
            logger.info("违反的约束:{}", constraintViolation.getMessage());
        }
    }
  • 查看
    这里写图片描述

注意,从打印的结果可以看到使用field级别的约束的时候,违反的约束的个数是4。

猜你喜欢

转载自blog.csdn.net/qq_17586821/article/details/80035891
今日推荐