自动级联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注释以递归方式应用
- 如何使用@DecimalMin和@DecimalMaxvalidationList ?
- 如何使用Spring MVC JSR-303 Validator将不同的模型类validation为一个表单
- JPA – 找不到类型为enum的validation器
- 如何在Spring Boot项目中禁用Hibernatevalidation
- beanvalidation默认参数的顺序?
- JSF:如何validation字段并通过beanvalidation返回错误消息?
- 是否有使用带注释的方法参数启用JSR 303 Bean Validation的标准方法
- Java Bean Validation(JSR303)约束涉及几个bean属性之间的关系
- 有没有办法从Bean Validation字段级ConstraintValidator中访问目标bean?