2

想象一下现在的情况:

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 实现相关的黑客解决方案。

4

1 回答 1

2

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

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

例如,在这里

于 2011-03-03T10:18:40.367 回答