在使用hibernate的validator的时候,出现了问题,记录下。
1、报错信息
javax.validation.UnexpectedTypeException: HV000030: No validator could be found for constraint 'org.hibernate.validator.constraints.NotBlank' validating type 'java.lang.Integer'. Check configuration for 'orderId'
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]
2、原因分析
@NotBlank(message = "订单id不能为空")
private Integer orderId;
这边使用了Integer,NotBlank不能判断Integer类型
3、解决思路
@NotEmpty 用在集合类上面
@NotBlank 用在String上面
@NotNull 用在基本类型上
修改为
@NotNull(message = "订单id不能为空")
private Integer orderId;
我的公众号
注意:本文归作者所有,未经作者允许,不得转载