我要求在公共 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 验证器实现?
我缺少一些依赖吗?
(我已经有休眠验证器)
javax 中的 NotBlank 与 hibernate 中的 NotBlank 的工作方式相同吗(我的意思是它会验证字符串吗?)
怎么解决这个问题呢?
问题出在你当时使用的版本上。您需要更新到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>
the javax.validation.constraints.NotBlank
是其一部分Bean 验证 2.0 https://docs.jboss.org/hibernate/stable/beanvalidation/api/javax/validation/constraints/NotBlank.html5.3 系列中不存在它的验证器。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)