如果你想校验car,并且一起校验和它相关的driver,该怎么办呢?当然你可以传递一个需要的组合给validate调用,但是如果你想使这些校验作为默认组的一部分呢?
这里@ConvertGroup可以帮你使用不同的组,而不是在级联校验请求一个。来看看下面例子中的@ConvertGroup的使用,这里@GroupSequence({CarChecks.class, Car.class})用来组合car相关的约束在Default组下。
也有@ConvertGroup(from=Default.class, to=DriverCheck.class),它可以保证Default组转换成DriverChecks组,在和driver关联的级联验期间。
public class Driver {
@NotNull
private String name;
@Min(
value = 18,
message = "You have to be 18 to drive a car",
groups = DriverChecks.class
)
public int age;
@AssertTrue(
message = "You first have to pass the driving test",
groups = DriverChecks.class
)
public boolean hasDrivingLicense;
public Driver(String name) {
this.name = name;
}
public void passedDrivingTest(boolean b) {
hasDrivingLicense =