J'ai un test comme ci-dessous: avec la sortie suivante: Je m'attendais à ce que l'annotation puisse EDIT: J'ai trouvé un Bug semble lié à cela, Mais je gère le point 4.2.0 final et obtenez toujours le comportement ci-dessus. P> p>
[contraintviolationimpl {interpolatedmessage = 'p', propertyPath = lst, rootbeanclass = classe com .... validator.tetstsizeannotation $ C, messageemplate = 'p'}] code> p>
@Size code> être remplacée et qu'aucun avertissement apparaît.
Y a-t-il un moyen d'accomplir cela? P>
3 Réponses :
Vous pouvez utiliser une validation configurée d'annotation via XML Configuration: P>
Dans votre cas, si vous déclarez une validation différente (ou aucune validation) pour la getlist () méthode dans le fichier validation.xml, il remplacera la @size code> Annotation. P>
Non, je veux utiliser le validateur par défaut, mais remplacer l'annotation.
En tant que Perception Sais dans sa réponse, non, vous ne pouvez pas les remplir réellement dans le code.
Les annotations de validation primordiales ne sont effectivement pas prises en charge pour JSR-303. Au lieu de cela, des annotations sur des méthodes remplacées dans la sous-classe seront appliquées cumulativement em>: à partir de la section 3.3 de la spécification:
Donc, cela signifie que je ne peux pas remplacer @notnull en super classe, non? Merci.
Juste pour les enregistrements, j'ai trouvé un contournement pour mon problème:
Ce n'est pas une substitution, c'est cumulatif. Dans ce cas, la validation initiale passera toujours si la deuxième validation passe, mais dans d'autres cas, où la validation initiale est mineure (...), puis vous ajoutez max (...) à la méthode primordiale, vous " Il doit utiliser la validation Min et Max (Max ne remplacera pas la première minute).