自动级联bean-validation递归validation,@ Valid注释

我在Jersey中的REST资源端点validation我的POJO:

public class Resource { @POST public Response post(@NotNull @Valid final POJO pojo) { ... } } public class POJO { @NotNull protected final String name; @NotNull @Valid protected final POJOInner inner; ... } public class POJOInner { @Min(0) protected final int limit; ... } 

这似乎工作正常。

但是,仅当字段inner具有@Valid注释时,才会validation@Min(0)注释。 将@Valid注释添加到不是基元的每个字段是不对的。

有没有办法告诉beanvalidation器自动递归继续validation,即使没有@Valid注释? 我希望我的POJO如下:

 public class POJO { @NotNull protected final String name; @NotNull protected final POJOInner inner; ... } 

实际上,根据规范,添加@Valid正是这个用例。 来自JSR 303规范:

除了支持实例validation之外,还支持对象图的validation。 图validation的结果作为一组统一的约束违规返回。 考虑bean X包含Y类型字段的情况。通过使用@Valid注释注释字段Y,Validator将在validationX时validationY(及其属性)。

@Valid注释以递归方式应用