2010-09-13 3 views
1

J'utilise l'implémentation d'hibernate de javax.validation et je voudrais savoir si quelqu'un a pu appliquer l'annotation de contrainte @NotNull à tous les champs d'une classe, plutôt qu'à chaque champ individuel?Comment puis-je appliquer une contrainte @NotNull à tous les champs d'une classe en utilisant javax.validation?

Je préférerais appliquer la contrainte @NotNull par défaut dans mon projet, afin d'éviter de mettre du code dans les annotations @NotNull sur tous les champs. Idéalement, il serait préférable de définir une contrainte personnalisée "@MayBeNull" pour annoter tous les champs qui peuvent être nuls.

Répondre

1

Est-il vraiment logique dans votre cas de valider tous les champs par rapport à null? Qu'en est-il par exemple avec des types de base comme int, long, etc

Quoi qu'il en soit, Bean Validation n'offre pas la fonctionnalité que vous demandez. Vous pouvez écrire une contrainte de classe personnalisée @MyNotNull qui, via la réflexion, a validé tous les champs par rapport à null. Personnellement, je recommande contre.

+0

Merci beaucoup. J'ai essayé d'écrire un validateur personnalisé. Bien que ce soit possible comme vous l'avez suggéré, j'ai tendance à être d'accord maintenant que ce n'est pas la solution la plus élégante. Je pense que la commodité qu'elle ajoute n'est pas un avantage suffisant. Un inconvénient d'une validation personnalisée au niveau de la classe est que vous perdez la possibilité d'identifier et de signaler les champs qui sont incorrectement définis sur null. Je vais m'en tenir à des annotations explicites au niveau du champ pour le moment. – Paco

Questions connexes