2011-03-03 34 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