読者です 読者をやめる 読者になる 読者になる

BeanValidation の グループ指定って…

validate メソッドに渡す、検証するグループを指定するための interface に Bean Validation が指定されてたら、groups 指定してなくても検証するみたい。

package sample;

import javax.validation.Validation;
import javax.validation.Validator;
import javax.validation.constraints.NotNull;

public class BeanTest {
  public static void main(String... args) {
    Validator v = Validation.buildDefaultValidatorFactory()
      .getValidator();
    System.out.println(
      v.validate(new TestBean()).size()); // 1
    System.out.println(
      v.validate(new TestBean(), Test.class).size()); // 1
  }
}

interface Test {
  @NotNull
  String getValue();
}

class TestBean implements Test {
  @Override
  public String getValue() {
    return null;
  }
}

これが

interface Test {
  String getValue();
}

class TestBean implements Test {
  @Override
  @NotNull
  public String getValue() {
    return null;
  }
}

こうだと、v.validate(new TestBean(), Test.class).size は 0 になりました。