javax.validation получить объект поля владельца поля - PullRequest
2 голосов
/ 03 марта 2011

Представьте себе текущую ситуацию:

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

Я хочу написать специальный валидатор ограничений для этой @BiggerThan аннотации.Однако в реализации ConstraintValidator, похоже, нет способа получить экземпляр Alpha.Подпись метода isValid:

public boolean isValid(Integer value, ConstraintValidatorContext context)

Нет параметра «Владелец объекта».Кажется, что и через context не существует способа получить его.

Возможно ли вообще реализовать это в инфраструктуре javax.validator?

Я используюHibernate-валидатор в качестве реализации, но я готов изменить это.Я хотел бы рассмотреть взломанное решение, привязанное к конкретной реализации jsr303, если это необходимо.

1 Ответ

2 голосов
/ 03 марта 2011

Вы можете реализовать его как ограничение уровня класса:

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

Например, как здесь .

...