JSR303验证常见对象的集合

Jer*_*oen 6 java collections validation bean-validation

是否可以基于一个或多个委托验证规则验证集合的每个元素?例如:

@EachElement({@Min(1), @Max(12)})
private Set<Integer> monthNumbers;
Run Code Online (Sandbox Code Playgroud)

Kai*_*Kai 0

看看这个答案:Hibernate Validation of Collections of Primitives。这描述了一个适合您的解决方案,但它非常复杂。一个更简单的解决方案可能是为您实现一个包装类,并在该类中Integer声明@Minand 。@Max比你可以使用

@Valid
private Set<MyIntegerWrapper> monthNumbers;
Run Code Online (Sandbox Code Playgroud)

MyIntegerWrapper 类:

class MyIntegerWrapper
{
   @Min(1)
   @Max(12)
   Integer myInteger;
}
Run Code Online (Sandbox Code Playgroud)

在这里您可以找到一些文档@Valid对象图