Java Bean验证:如何指定相同类型但具有不同组的多个验证约束?

Haj*_*cke 8 java validation bean-validation

我有多个进程,其中bean属性必须具有不同的值.例:

@Min( value=0, groups=ProcessA.class )
@Min( value=20, groups=ProcessB.class )
private int temperature;
Run Code Online (Sandbox Code Playgroud)

不幸的是,bean验证JSR 303没有在javax.validation.constraints.Min上设置@Repeatable,所以这种方法不起作用.我找到了"Min.List",但没有任何关于如何使用它的文档.相反,官方Oracle文档声明在http://docs.oracle.com/javaee/7/api/javax/validation/constraints/class-use/Min.List.html

没有使用javax.validation.constraints.Min.List

那么这一刻看起来像规格错误了?!?

JB *_*zet 9

对于将Min.List注释数组作为其属性之一的任何其他注释的语法是

@Min.List({ @Min(value = 0, groups = ProcessA.class),
            @Min(value = 20, groups = ProcessB.class) })
Run Code Online (Sandbox Code Playgroud)

  • 注释是可重复的,因为Java 8. Bean验证是在Java 5或6上设计的.所以这种可能性不存在,因此Min.List的解决方法.如果现在设计了Bean Validation,则Min.List可能不存在. (2认同)