承接上文,本文讲解property级别的约束。如果我们的模型类使用的是标准的Java bean的话,我们也可以使用property级别的约束来替代field级别的约束。
public class Car {
private String manufacturer;
private boolean isRegistered;
public Car(String manufacturer, boolean isRegistered) {
this.manufacturer = manufacturer;
this.isRegistered = isRegistered;
}
@NotNull
public String getManufacturer() {
return manufacturer;
}
public void setManufacturer(String manufacturer) {
this.manufacturer = manufacturer;
}
@AssertTrue
public boolean isRegistered() {
return isRegistered;
}
public void setRegistered(boolean registered) {
isRegistered = registered;
}
}
当使用property级别的约束的时候,hibernate validator会使用property访问策略来访问需要校验的值,校验引擎通过getter方法访问要被校验的值。
建议在一个模型类中,field级别的约束和property级别的约束不要同时使用,否则会导致一个属性被校验2次。