单个验证器的集合验证

时间:2015-04-29 12:25:40

标签: java hibernate jpa hibernate-validator

让我们说我有一个班级:

class Foo{
  @SomeCustomStringValidator
  String bar;
}

然后我想

class Foo{

  List<String> bars;
}

有没有办法以某种方式使用@SomeCustomStringValidator应用于bars集合?

2 个答案:

答案 0 :(得分:1)

我会简单地包装课程:

class MyString {

    @SomeCustomStringValidator
    String bar;

    // mutators
}

然后构建一个MyString

列表
class Foo {
    List<MyString> bars;
}

答案 1 :(得分:1)

如果您使用的是Java 8,则可以使用最新的Hibernate Validator 5.2版本。有可能做到:

class Foo{
  @Valid
  List<@SomeCustomStringValidator String> bars;
}

否则,您可以使用此answer中提到的类包装方法。

最后但并非最不重要的是,您可以编写自定义ConstraintValidator<SomeCustomStringValidator, Collection>并尝试在此验证程序和您已有的`ConstraintValidator之间共享核心验证逻辑。