J'ai l'obligation de ne pouvoir utiliser aucun type d'annotation de validation d'Hibernate dans le module api commun (projet multi-module). J'ai donc utilisé celui de javax.validation, qui est acceptable.
Le problème commence lorsque je veux valider mes objets de domaine (j'utilise vaadin) contenant une annotation NotBlank. Je reçois l'exception suivante
javax.validation.UnexpectedTypeException: HV000030: No validator could be found for constraint 'javax.validation.constraints.NotBlank' validating type 'Java.lang.String'. Check configuration for 'name'
La validation est appelée par appel
Validation.buildDefaultValidatorFactory().validateValue(beanType, propertyName, value)
Même code fonctionne parfaitement avec NotBlank de hibernate
De plus, @Size @NotNull de javax fonctionne bien.
Est-il possible de fournir l'implémentation du validateur NotBlank à DefaultValidatorFactory?
Est-ce que je manque une dépendance? (J'ai déjà un validateur hibernate)
NotBlank de javax fonctionne-t-il de la même façon que NotBlank de hibernate (je veux dire, valide-t-il les chaînes?)
Comment résoudre ceci?
Le problème est dans la version que vous utilisez alors. Vous devez mettre à jour la série 6.0.x. Avec le dernier en date été 6.0.9. Notez que l'ID de groupe est modifié en org.hibernate.validator.
<dependency>
<groupId>org.hibernate.validator</groupId>
<artifactId>hibernate-validator</artifactId>
<version>6.0.9.Final</version>
</dependency>
le javax.validation.constraints.NotBlank
fait partie de Bean Validation 2.0 et son validateur n’est pas présent dans la série 5.3.
comme le dit baeldung.com Selon la spécification JSR 380, la dépendance validation-api contient les API de validation standard:
<dependency>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
<version>2.0.0.Final</version>
Hibernate Validator est l'implémentation de référence de l'API de validation . Pour l'utiliser, nous devons ajouter les dépendances suivantes:
<dependency>
<groupId>org.hibernate.validator</groupId>
<artifactId>hibernate-validator</artifactId>
<version>6.0.2.Final</version>
<dependency>
<groupId>org.hibernate.validator</groupId>
<artifactId>hibernate-validator-annotation-processor</artifactId>
<version>6.0.2.Final</version></dependency>