我无法在任何有关 JSR303/JSR380 bean 验证(Jakarta Validation)的文档中找到明确说明,但是所有应用验证的字段是否都必须是“本质上”的普通旧数据(POD)类型,比如字符串、整数、长整型等等?
我尝试将正则表达式验证器应用于 UUID 字段,结果出现了NoProviderFoundException
错误。我通过将该字段更改为并将该String
字段转换为的责任交给UUID
该类的消费者来解决此问题,但是,在实施解决方法不那么简单的情况下,是否有任何方法可以创建映射到任意非 POD 类的自定义“bean 验证提供程序”?
注意:java.util.UUID 是一个可序列化的类,因此完全可以将其包含在 Bean 中。
只要约束注释定义了匹配的ConstraintValidator ,Bean 验证便适用于类型。我认为您无法为现成的注释添加对额外类型的支持,但如果您创建自己的自定义注释,则可以支持所需的所有类型。
一个快速而粗略的例子
@Pattern
: