【发布时间】:2022-07-22 21:09:08
【问题描述】:
我在我的 maven 项目中使用了最新版本的 hibernate 验证器包。我的 pom 文件包含这个
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
<version>7.0.4.Final</version>
<scope>compile</scope>
</dependency>
当我使用版本 6 时,一切正常,但使用版本 7,以下方法会引发错误。
private void addValidationError(ConstraintViolation<?> cv) {
this.addValidationError(
cv.getRootBeanClass().getSimpleName(),
((PathImpl) cv.getPropertyPath()).getLeafNode().asString(),
cv.getInvalidValue(),
cv.getMessage());
}
错误在于对 PathImpl 的强制转换。将鼠标悬停在错误上,我收到此消息:
Inconvertible types; cannot cast 'javax.validation.Path' to 'org.hibernate.validator.internal.engine.path.PathImpl'
当我导航到 PathImpl 类时,我可以看到该文件(在已自动下载的 jar 中,当然不是由我控制的)无法编译,因为其中的这两行错误
import jakarta.validation.ElementKind;
import jakarta.validation.Path;
错误是
Cannot resolve symbol 'jakarta'
我是不是做错了什么?
【问题讨论】: