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

时间:2011-03-03 10:01:47

标签: java validation bean-validation

想象一下目前的情况:

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

我想为此@BiggerThan注释编写自定义约束验证器。 但是,似乎没有办法在Alpha实现中掌握ConstraintValidator实例。 isValid方法的签名是

public boolean isValid(Integer value, ConstraintValidatorContext context)

没有'对象所有者'参数。似乎没有办法让它通过context

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

我正在使用hibernate-validator作为实现,但我愿意改变它。如果需要,我会考虑绑定到特定jsr303实现的被黑客入侵的解决方案。

1 个答案:

答案 0 :(得分:2)

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

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

例如,here