web-dev-qa-db-fra.com

Équivalent d'annotation Hibernate @NotEmpty dans Javax.package ou alternative

Existe-t-il un moyen d'implémenter la validation @NotEmpty hibernate sans écrire de validation personnalisée? Le package. Javax.validation ne contient pas cette annotation. Seulement @NotNull. Mais cela ne valide pas les valeurs non nulles mais vides. Je voudrais donc voir une alternative pour @NotEmpty.

Utiliser @Pattern? Comment?

32
Kevin Rave

NotEmpty est juste une combinaison de @NotNull et @Size(min=1).

81
Affe

Veuillez noter que @NotEmpty retournera valide pour une liste <> contenant un élément null.

Un peu bizarre dans le cas d’une liste @QueryParam <>

Comme dit Affe, j'ai créé une annotation personnalisée, elle-même annotée avec @NotNull et @Size (min = 1) avec un validateur personnalisé qui itère la collection et positionne un indicateur booléen uniquement si les éléments ne sont pas nuls.

7
Jerome_B

Mis à jour:

J'ai reçu -2 points dans mes RÉALISATIONS de cette réponse.

Alors je le mets à jour.

Dans le code source d'Hibernate @NotEmpty après Hibernate 6, il nous a dit d'utiliser la contrainte standard {@link javax.validation.constraints.NotEmpty}:

/**
 * Asserts that the annotated string, collection, map or array is not {@code null} or empty.
 *
 * @author Emmanuel Bernard
 * @author Hardy Ferentschik
 *
 * @deprecated use the standard {@link javax.validation.constraints.NotEmpty} constraint instead
 */

Voir: 

https://github.com/hibernate/hibernate-validator/blob/6.0/engine/src/main/Java/org/hibernate/validator/constraints/NotEmpty.Java


Vieille réponse:

Après la validation de bean 2.0 (JSR 380), il existe une nouvelle annotation @NotEmpty:

javax.validation.constraints.NotEmpty

Voir:

http://beanvalidation.org/2.0/spec/#builtinconstraints-notempty

https://github.com/beanvalidation/beanvalidation-api/blob/master/src/main/Java/javax/validation/constraints/NotEmpty.Java

1
zhouji