小编Lui*_*uis的帖子

HV000030:找不到约束“javax.validation.constraints.Size”验证类型“java.util.Optional<java.lang.String>”的验证器

大家好,我正在尝试对 YAML 进行验证

\n
- name: campo\n        in: query\n        schema:\n          type: string\n          pattern: '[S|N]' #pattern\n          maxLength: 1\n
Run Code Online (Sandbox Code Playgroud)\n

使用 Maven Spring Boot 和 delegate。在 RestController 上,我添加了注释@Validated,并且能够验证 required=true 字段,但如果字段不是必需的,根据架构设计,参数将为Optional<String>。为此java.util.Optional,尝试测试和验证,抛出标题错误:

\n
{\n  "timestamp": "2020-10-21T07:50:18.651+0000",\n  "status": 500,\n  "error": "Internal Server Error",\n  "message": "HV000030: No validator could be found for constraint 'javax.validation.constraints.Size' validating type 'java.util.Optional<java.lang.String>'. Check configuration for 'metodo.campo'",\n  "path": "/%7BbasePath%7D/microservicio/metodo"\n}\n
Run Code Online (Sandbox Code Playgroud)\n

\xc2\xbf有办法解决此问题以Optional<String>正确处理此验证吗?如果可以在 YAML + 验证(@Valid 和 @Validated)上完成,我们不想在 Java 上编写所有验证代码。

\n

编辑:验证 @Size 和其他内容是使用开放 api 版本 …

java validation constraints option-type

4
推荐指数
1
解决办法
3069
查看次数

标签 统计

constraints ×1

java ×1

option-type ×1

validation ×1