vlc*_*cik 3 hibernate-validator bean-validation spring-data-jpa
我正在尝试找出如何在控制器中验证DTO
堆栈:Spring boot 1.5.4,Spring Data JPA,Hibernate Validation 5,PostgreSQL
问题是我仍然遇到有关缺少验证器的异常情况。
有什么线索吗?
javax.validation.UnexpectedTypeException: HV000030: No validator could be found for constraint 'javax.validation.constraints.Email' validating type 'java.lang.String'. Check configuration for 'email'
at org.hibernate.validator.internal.engine.constraintvalidation.ConstraintTree.throwExceptionForNullValidator(ConstraintTree.java:227) ~[hibernate-validator-5.4.1.Final.jar:5.4.1.Final]
at org.hibernate.validator.internal.engine.constraintvalidation.ConstraintTree.getConstraintValidatorNoUnwrapping(ConstraintTree.java:308) ~[hibernate-validator-5.4.1.Final.jar:5.4.1.Final]
at org.hibernate.validator.internal.engine.constraintvalidation.ConstraintTree.getConstraintValidatorInstanceForAutomaticUnwrapping(ConstraintTree.java:242) ~[hibernate-validator-5.4.1.Final.jar:5.4.1.Final]
at org.hibernate.validator.internal.engine.constraintvalidation.ConstraintTree.getInitializedConstraintValidator(ConstraintTree.java:163) ~[hibernate-validator-5.4.1.Final.jar:5.4.1.Final]
at org.hibernate.validator.internal.engine.constraintvalidation.ConstraintTree.validateConstraints(ConstraintTree.java:116) ~[hibernate-validator-5.4.1.Final.jar:5.4.1.Final]
at org.hibernate.validator.internal.engine.constraintvalidation.ConstraintTree.validateConstraints(ConstraintTree.java:87) ~[hibernate-validator-5.4.1.Final.jar:5.4.1.Final]
at org.hibernate.validator.internal.metadata.core.MetaConstraint.validateConstraint(MetaConstraint.java:73) ~[hibernate-validator-5.4.1.Final.jar:5.4.1.Final]
at org.hibernate.validator.internal.engine.ValidatorImpl.validateMetaConstraint(ValidatorImpl.java:616) ~[hibernate-validator-5.4.1.Final.jar:5.4.1.Final]
Run Code Online (Sandbox Code Playgroud)
DTO
public class CreateUserDto {
@NotEmpty
private String name;
@Email
@NotEmpty
private String email;
private String password;
private String address;
private String phone;
@NotNull
private Role role;
}
Run Code Online (Sandbox Code Playgroud)
控制者
@PostMapping(value = "/users", consumes = MediaType.APPLICATION_JSON_VALUE)
@ResponseBody
@ResponseStatus(HttpStatus.CREATED)
public UserDto register(@Valid @RequestBody CreateUserDto user) {
return userService.register(user);
}
Run Code Online (Sandbox Code Playgroud)
我怀疑您正在将Bean Validation 2.0与仅支持BV 1.1的Hibernate Validator 5.4一起使用。@Email约束是在2.0中添加到规范中的-在此之前,它只是HV特定的约束。
您可能已向Validation-api 2.0添加了依赖项。
所以:
| 归档时间: |
|
| 查看次数: |
1865 次 |
| 最近记录: |