gpt4 book ai didi

java - Hibernate 自定义 validator - addPropertyNode() 抽象方法异常

转载 作者:行者123 更新时间:2023-11-29 08:53:45 25 4
gpt4 key购买 nike

我使用了 ConstraintValidator.ContextConstraintViolationBuilderaddNode() 方法将错误消息添加到自定义路径中,但此方法已被弃用。但是,当我使用新方法 addPropertyNode 时,我得到了一个 AbstractMethodError

是否缺少某些依赖项?

以下是错误消息的片段:

java.lang.AbstractMethodError: 
org.hibernate.validator.internal.engine.ConstraintValidatorContextImpl$ErrorBuilderImpl
.addPropertyNode(Ljava/lang/String;)
Ljavax/validation/ConstraintValidatorContext$ConstraintViolationBuilder
$NodeBuilderCustomizableContext;

下面是使用 Hibernate Validator 4.3.1-Final 进行跨域验证的 validator 片段

import org.springframework.beans.*;
...

private String first;
private String second;

public boolean isValid(Object value, ConstraintValidatorContext context) {
BeanWrapper beanWrapper = new BeanWrapperImpl(value);
Object fieldObj = beanWrapper.getPropertyValue(first);
Object verifyObj = beanWrapper.getPropertyValue(second);

if (fieldObj.equals(verifyObj)) {
return true;
}
else {
context.disableDefaultConstraintViolation();
context.buildConstraintViolationWithTemplate("message")
.addPropertyNode(fieldObj).addConstraintViolation();

// ~ Depreciated, but works correctly~
// context.buildConstraintViolationWithTemplate("message")
// .addNode(fieldObj).addConstraintViolation();

return true;
}
}

最佳答案

addPropertyNode() 方法已添加到 Bean Validation 1.1 API 中。当您使用 BV 1.1 API 时,您似乎使用了仅实现 Bean Validation 1.0 的早期版本的 Hibernate Validator (4.x)。您应该确保使用 Hibernate Validator 5.x,它是 Bean Validation 1.1 的引用实现。

关于java - Hibernate 自定义 validator - addPropertyNode() 抽象方法异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21416815/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com