如何将GroupSequenceProvider级联到成员列表?

时间:2017-03-06 09:19:16

标签: java spring hibernate bean-validation hibernate-validator

嗨说我有一个名为car的样本bean,我想重新定义它的验证序列:

@GroupSequenceProvider(value = CarSequenceProvider.class)
public class Car{
   @NotNull(groups = {groupOne.class})
   private Boolean isGood;

   @Valid
   private List<Driver> drivers;

   // getter/setter
}

这是我的驱动程序类

public class Driver{

  @NotEmpty(groups = {groupTwo.class})
  private List<String> skills;    

  //getter/setter
}

这里是我的序列提供者:

public class CarSequenceProvider implements DefaultGroupSequenceProvider<Car>{

  @Override
  public List<Class<?>> getValidationGroups(Car car) {
    List<Class<?>> sequence = new ArrayList<Class<?>>();
    sequence.add(Car.class);
    sequence.add(groupOne.class);

    if(car != null && car.IsGood()){
      sequence.add(groupTwo.class);
    }
}

基本上我只希望如果汽车好的话,所有驾驶技能都不会是空的。现在发生的事情是@notEmpty永远不会被调用,因为我的序列重新定义没有级联到Driver List。是否有可能使它级联呢?

非常感谢

1 个答案:

答案 0 :(得分:0)

  

这里@ConvertGroup进入游戏,允许你级联   验证使用与最初请求的组不同的组。

你试过的那个注释

来源:example-group-conversion-dedault-to-driver-checks