在使用Hibernate.validator做数据验证时,碰到了该异常:
Exception in thread "main" javax.validation.UnexpectedTypeException: No validator could be found for type: java.lang.Double
at org.hibernate.validator.engine.ConstraintTree.verifyResolveWasUnique(ConstraintTree.java:383)
at org.hibernate.validator.engine.ConstraintTree.findMatchingValidatorClass(ConstraintTree.java:364)
at org.hibernate.validator.engine.ConstraintTree.getInitializedValidator(ConstraintTree.java:313)
at org.hibernate.validator.engine.ConstraintTree.validateConstraints(ConstraintTree.java:144)
at org.hibernate.validator.engine.ConstraintTree.validateConstraints(ConstraintTree.java:117)
at org.hibernate.validator.metadata.MetaConstraint.validateConstraint(MetaConstraint.java:84)
at org.hibernate.validator.engine.ValidatorImpl.validateConstraint(ValidatorImpl.java:452)
这种错误一般就是因为使用了错误的注解导致。这个报错是因为对double字段使用了@NotBlank
注解,该注解是hibernate对validation做的扩展,只针对String类型的数据进行判空。而Double类型属于对象类型,应该使用@NotNull
注解进行标注。