Le contenu de l'article est le titre.
Dans la vérification de corrélation à l'aide de ʻAssertTrue`, lorsque j'ai essayé d'effectuer une validation telle que "Erreur 1 si" faux ", Erreur 2 si" null "", la méthode n'a pas été appelée au moment de la validation.
@AssertTrue(message = "Hogehoge")
@NotNull(message = "Fuga Fuga")
private Boolean isValid() {
/*Contrôle de corrélation*/
}
D'après le document officiel, c'est comme suit.
Pour le dire clairement, java.lang.Boolean
est un objet, donc donner un nom de méthode commençant par ʻis ~` est une violation de la convention.
Si vous y réfléchissez, c'est une évidence, mais c'est compliqué, alors pardonnez-moi ...
What is a getter? The JavaBeans specification specifies that a getter is a method whose
- name starts with get and has a return type but no parameter
- name starts with is, has no parameter and is returning boolean
Exposant: Spécification Bean Validation
Vous pouvez le faire appeler en modifiant le nom de la méthode.
Cependant, dans ce cas, je ne pense pas qu'il soit nécessaire de spécifier Boolean
.
Il y a aussi le problème des getters et des noms de champs.
@AssertTrue(message = "Hogehoge")
@NotNull(message = "Fuga Fuga")
private Boolean getValid() {
/*Vérification de la corrélation*/
}
Je n'ai pas trouvé d'autre solution.
Je pensais pouvoir exécuter plusieurs vérifications de corrélation sur le même champ sans créer d'annotation, mais cela n'a pas fonctionné. Il est assez pénible d'essayer d'équilibrer l'acquisition de valeur et la validation, il est donc sage de séparer l'objet de validation et l'objet d'acquisition de valeur, surtout lorsque les choses se compliquent.
Recommended Posts