javax.validation 获取字段字段所有者对象

标签 java validation bean-validation

想象一下现在的情况:

class Alpha
{
    Integer x1;
    @BiggerThan("x1")
    Integer x2;
}

我想为这个 @BiggerThan 注释编写一个自定义约束 validator 。 但是,似乎没有办法在 ConstraintValidator 实现中获取 Alpha 实例。 isValid 方法的签名是

public boolean isValid(Integer value, ConstraintValidatorContext context)

没有“对象所有者”参数。似乎也没有办法通过 context 获取它。

是否可以在 javax.validator 框架中实现它?

我正在使用 hibernate-validator 作为实现,但我愿意改变它。如果需要,我会考虑一个与特定 jsr303 实现相关联的黑客解决方案。

最佳答案

您可以将其实现为类级约束:

@BiggerThen(a = "x1", b = "x2")
class Alpha {
    Integer x1;
    Integer x2;
}

例如,作为here .

关于javax.validation 获取字段字段所有者对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5179163/

相关文章:

javascript - 在angularjs表单验证中提交表单之前显示错误消息

java - 使用 JSR 303 在 JSF 中使用内联消息传递进行跨字段验证

Javamail,发送附件时出错。

java - 如何使用 MySQL Read-Replica 配置 Spring/Hibernate

java - 如何添加 e.getmessage() 作为 java 方法的返回

validation - 如何设置 JSR303 bean 验证的检查顺序

java - Hibernate Validator 方法或构造函数验证

java - 我们如何知道线程已经完成了它的执行?

php - Laravel - 在自定义验证中使用验证规则

java - Instanceof Collection 未按预期运行