2011-03-03 31 views
2

试想一下目前的情况:javax.validation GET场场所有者对象

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

我想写这个@BiggerThan注释的定制约束验证。 但是,似乎没有办法在ConstraintValidator实现中获得Alpha实例。 isValid方法的签名是

public boolean isValid(Integer value, ConstraintValidatorContext context) 

没有'Object owner'参数。似乎也没有办法通过context

是否可以在javax.validator框架中实现这一点?

我使用hibernate-validator作为实现,但我愿意改变这种情况。如果需要的话,我会考虑与特定jsr303实现绑定的黑客解决方案。

回答

2

您可以实现它作为一个类级别的约束:

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

例如,here

+0

这可以工作。谢谢! – 2011-03-03 10:27:22