Пусто проверить в @constraint
-
12-10-2019 - |
Вопрос
Я заметил, что все встроенные ограничения имеют пустое значение для validatedBy
параметр в @Constraint
. Анкет т.е. @Constraint(validatedBy = {})
Во -первых, почему им разрешено иметь пустое значение для validatedBy
? Я думал, что вы можете оставить это пустым только для состава ограничений, которая не нуждается в дополнительной проверке?
Кроме того, обратите внимание, что валидатор Hibernate все еще может найти класс реализации валидатора для каждого встроенного ограничения, несмотря на validatedBy
пуст, но если я оставлю проверенный бланк для моего ограничения, мой пользовательский валидатор никогда не забирается. Почему это?
Спасибо.
Решение
Эти встроенные обрабатываются специальным способом, специфичным для реализации, а их валидаторы настроены программно.
Для спящего валидатора это сделано в ConstraintHelper.java
. Анкет Я думаю, что вы не можете достичь того же самого для своих пользовательских ограничений.
Другие советы
Может, посмотрите на этот ответ:
Как избежать перекрестной зависимости между слоями из -за @Constraint VALITEDBY?
И эти две ссылки:
Добавление ограничений программно:http://docs.jboss.org/hibernate/stable/validator/reference/en-us/html/validator-priceficifics.html#section-programmatic-api
Добавление ограничений на XML:http://docs.jboss.org/hibernate/validator/4.1/reference/en-us/html/validator-xmlconfiguration.html