【问题标题】:Collection validation from single validator来自单个验证器的集合验证
【发布时间】:2015-04-29 12:25:39
【问题描述】:

假设我有一堂课:

class Foo{
  @SomeCustomStringValidator
  String bar;
}

然后我想拥有

class Foo{

  List<String> bars;
}

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

【问题讨论】:

    标签: java hibernate jpa hibernate-validator


    【解决方案1】:

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

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

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

    最后但同样重要的是,您可以编写自定义 ConstraintValidator&lt;SomeCustomStringValidator, Collection&gt; 并尝试在此验证器和您已有的`ConstraintValidator 之间共享核心验证逻辑。

    【讨论】:

    • 遗憾的是我们还没有使用 Java 8。但是我已经创建了在内部使用 SomeCustomSringValidator 的自定义集合验证器。
    • 在你的情况下可能是最好的方法。
    【解决方案2】:

    我会简单地包装类:

    class MyString {
    
        @SomeCustomStringValidator
        String bar;
    
        // mutators
    }
    

    然后构造MyString的列表:

    class Foo {
        List<MyString> bars;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-02
      • 2014-12-26
      • 2011-07-08
      • 1970-01-01
      相关资源
      最近更新 更多