Подтвердить что ты не робот

Пустой подтвержденныйBy в @Constraint

Я заметил, что все встроенные ограничения имеют пустое значение для параметра validatedBy в @Constraint. т.е. @Constraint(validatedBy = {})

Во-первых, почему им разрешено иметь пустое значение для validatedBy? Я думал, вы можете оставить его пустым только для композиции ограничений, которая не требует дополнительной проверки?

Также обратите внимание, что Hibernate Validator все еще может найти класс реализации валидатора для каждого встроенного ограничения, несмотря на то, что validatedBy пуст, но если я оставлю пустое значение validatedBy для моего ограничения, мой пользовательский валидатор никогда не будет поднят, Почему это?

Спасибо.

4b9b3361

Ответ 1

Эти встроенные средства обрабатываются специальным образом, а их валидаторы настроены программно.

Для Hibernate Validator это делается в ConstraintHelper.java. Я думаю, вы не можете достичь того же для своих пользовательских ограничений.

Ответ 2

Возможно, посмотрите на этот ответ:

Как избежать перекрестной зависимости между слоями из-за @Constraint validatedBy?

И эти две ссылки:

Добавление ограничений программно: http://docs.jboss.org/hibernate/stable/validator/reference/en-US/html/validator-specifics.html#section-programmatic-api

Добавление ограничений на xml: http://docs.jboss.org/hibernate/validator/4.1/reference/en-US/html/validator-xmlconfiguration.html