一尘不染

javax.validation.NotBlank缺少验证器

hibernate

我要求在通用api模块(多模块项目)中,我不能使用任何形式的hibernate的验证注释,因此我确实使用了javax.validation中的一个可接受的注释。

当我要验证包含NotBlank批注的域对象(我使用vaadin)时,问题就开始了。我得到以下异常

javax.validation.UnexpectedTypeException: HV000030: No validator could be found for constraint 'javax.validation.constraints.NotBlank' validating type 'java.lang.String'. Check configuration for 'name'

验证通过调用进行

Validation.buildDefaultValidatorFactory().validateValue(beanType, propertyName, value)

相同的代码与hibernate的NotBlank完美配合

javax的@Size @NotNull也可以正常工作。

是否可以向DefaultValidatorFactory提供NotBlank验证程序实现?

我缺少一些依赖吗?(我已经有hibernate验证器)

javax的NotBlank是否与hibernate的NotBlank相同(我是说它会验证字符串吗?)

如何解决呢?


阅读 2220

收藏
2020-06-20

共1个答案

一尘不染

问题出在您当时使用的版本中。您需要更新到6.0.x系列。目前最新的是6.0.9。注意,groupId更改为org.hibernate.validator。

<dependency>
    <groupId>org.hibernate.validator</groupId>
    <artifactId>hibernate-validator</artifactId>
    <version>6.0.9.Final</version>
</dependency>

javax.validation.constraints.NotBlankBean Validation
2.0的
一部分,而它的验证器在5.3系列中不存在。

2020-06-20