Vider validatedBy dans @Constraint
-
12-10-2019 - |
Question
J'ai remarqué que toutes les contraintes intégrées ont une valeur vide pour le paramètre validatedBy
dans @Constraint
. à savoir @Constraint(validatedBy = {})
D'abord, pourquoi sont-ils autorisés à avoir une valeur vide pour validatedBy
? Je pensais que vous pouvez laisser le champ vide que pour la composition de contrainte qui n'a pas besoin de validation addtional?
En outre, notez que la mise en veille prolongée Validator peut encore trouver une classe de mise en œuvre de validateur pour chaque intégré contrainte, malgré la validatedBy
est vide, mais si je laisse le vide validatedBy pour ma contrainte, mon validateur personnalisé ne sont ramassées. Pourquoi?
Merci.
La solution
Les incorporés sont traités de façon spéciale spécifique à la mise en œuvre et leurs valideurs sont configurés par programmation.
Pour Hibernate Validator il est fait dans ConstraintHelper.java
. Je pense que vous ne pouvez pas obtenir la même chose pour vos contraintes personnalisées.
Autres conseils
Peut-être jeter un oeil à cette réponse:
Comment éviter la dépendance croisée entre les couches en raison de @Constraint validatedBy?
Et ces deux liens:
Ajout programme contraintes: http: //docs.jboss.org/hibernate/stable/validator/reference/en-US/html/validator-specifics.html#section-programmatic-api
Ajout de contraintes par xml: http: //docs.jboss. org / mise en veille prolongée / validateur / 4.1 / référence / en-US / html / valideur-xmlconfiguration.html