Der Inhalt des Artikels ist als Titel.
Bei der Korrelationsprüfung mit "AssertTrue" wurde die Methode zum Zeitpunkt der Validierung nicht aufgerufen, als ich versuchte, eine Validierung wie "Fehler 1 bei" false ", Fehler 2 bei" null "" durchzuführen.
@AssertTrue(message = "Hogehoge")
@NotNull(message = "Fuga Fuga")
private Boolean isValid() {
/*Korrelationsprüfung*/
}
Aus dem offiziellen Dokument geht Folgendes hervor.
Einfach ausgedrückt ist java.lang.Boolean
ein Objekt, daher ist die Angabe eines Methodennamens, der mit is ~
beginnt, ein Verstoß gegen die Konvention.
Es ist eine Selbstverständlichkeit, wenn Sie darüber nachdenken, aber es ist kompliziert, also bitte verzeihen Sie mir ...
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
Aussteller: Bean Validation Specification
Sie können es aufrufen lassen, indem Sie den Methodennamen ändern. In diesem Fall halte ich es jedoch nicht für erforderlich, "Boolean" anzugeben.
Es gibt auch das Problem, Getter und Namen für Felder zu erhalten.
@AssertTrue(message = "Hogehoge")
@NotNull(message = "Fuga Fuga")
private Boolean getValid() {
/*Korrelationsprüfung*/
}
Ich konnte keine andere Lösung finden.
Ich dachte, ich könnte mehrere Korrelationsprüfungen für dasselbe Feld ausführen, ohne eine Anmerkung zu erstellen, aber es hat nicht funktioniert. Es ist ziemlich schmerzhaft zu versuchen, Wertschöpfung und Validierung in Einklang zu bringen, daher ist es ratsam, das Validierungsobjekt und das Werterfassungsobjekt zu trennen, insbesondere wenn die Dinge kompliziert werden ...
Recommended Posts