【发布时间】:2018-10-05 15:03:11
【问题描述】:
我要求在通用 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-validator了)
来自 javax 的 NotBlank 是否与来自 hibernate 的 NotBlank 工作方式相同(我的意思是它是否验证字符串?)
如何解决?
【问题讨论】:
-
你能说出你有哪个版本的hibernate-validator吗?
-
您在此注释上使用的是什么类型的对象?整数 ?字符串?
-
它的 5.3.6.final
-
验证字段如下所示 @NotBlank @Size(min = 1, max = 250) private String name;
-
好的,你使用的是 spring boot starter-web 吗?如果不是,您是否包括此依赖项?
org.springframework.boot spring-boot-starter-validation
标签: java spring hibernate bean-validation hibernate-validator