晚上好,我尝试使用Hibernate Validator,在以下场景中:
public class Car {
@NotNull
private String manufacturer;
@NotNull
@Size(min = 2, max = 14)
private String licensePlate;
@Min(2)
private int seatCount;
//setters and getters....
}
我正在尝试验证其属性如下:
public class CarMain {
public static Validator validator;
public static void main(String[] args) {
ValidatorFactory factory = Validation. buildDefaultValidatorFactory() ;
validator = factory. getValidator();
Car car = new Car(null,null,0);
Set<ConstraintViolation<Car>> st= validator.validate(car);
while(st.iterator.hasNext()){
ConstraintViolation<Car> cv = st.iterator.next();
System.out.println("Value: ("+cv.getInvalidValue()+") -->"+cv.getMessage());
System.out.println("Attribute: "+cv.getPropertyPath());
}
}
此处验证整个实体,并显示带有验证消息和属性路径的无效值。
我的问题是:&#34;是否可以使用Hibernate Validator一次只验证一个属性?就像我不必使用整个对象来验证它一样。
答案 0 :(得分:0)
@EnableAutoConfiguration
接口还定义了一个Validator
方法,您可以在其中明确指定要验证的属性。请注意,您仍然需要对象实例,并且您需要知道要验证的属性。例如,将Bean Validation集成到JSF中使用此方法。在您的案例中使用它是否有意义取决于您的使用案例?你为什么不想验证整个对象?
BTW,还有[Validator.validateProperty][1]
,它不需要实际的bean实例。