[Java] Korrelationsprüfung, ohne selbst eine Anmerkung mit Bean Validation zu erstellen

Dinge die zu tun sind

In BeanValidation werde ich die Methode der Korrelationsprüfung in dem Bereich zusammenfassen, in dem Sie keine eigene Annotation erstellen (& sie wird innerhalb des zu validierenden Objekts abgeschlossen).

Technische Details finden Sie in der offiziellen Dokumentation.

Annahme

Als Faustregel gilt: Wenn Sie einen Prozess wie "Abgleichen der von vorne übergebenen Daten und der von der Datenbank erfassten Daten, Validieren und Registrieren in der Datenbank, wenn sie gültig sind" ausführen, ist es meiner Meinung nach besser, sie wie folgt zu trennen. Ich werde.

  1. Objekte, die Daten und ihren Generierungsprozess aggregieren
  2. Validierungsprozess mit 1 3.1 Verfahren zum Registrieren von Daten mit 1

In diesem Artikel werde ich insbesondere über 2 schreiben, aber da dieser Prozess eng mit der Datenstruktur des Validierungsergebnisses zusammenhängt (insbesondere in BeanValidation wirken sich der Feldname und der Methodenname auf die nach vorne zurückgegebenen Daten aus), schreiben Sie sie zusammen. In diesem Fall werden Änderungen in 2 und der Vorderseite auf 1 und Änderungen in 1 und 3 auf die Vorderseite übertragen.

Weil ich 1 bis 3 zusammen geschrieben habe, fühle ich mich sehr schmerzhaft, weil "ich hier nicht stehen kann, wenn ich versuche, das zu ändern ...".

Weise

Ich werde die folgenden drei grob vorstellen.

--Verwenden Sie für Funktionen AssertTrue oder AssertFalse

Verwenden Sie für Funktionen AssertTrue oder AssertFalse

Dies ist eine Methode, die häufig als Korrelationsprüfung eingeführt wird. Wenn der Methodenname "isValid" lautet, ist der Eigenschaftsname des Fehlers "valid".

@AssertTrue
private boolean isValid() {
  /*Korrelationsprüfung*/
}

Beachten Sie, dass der Rückgabewert der primitive Typ "boolean" sein muss, wenn eine Korrelationsprüfung mit dem Methodennamen "~" durchgeführt wird. Wird benötigt.

Kommentieren Sie den Getter

In BeanValidation kann die Validierung durch Annotieren eines Feldes erfolgen, die Validierung kann jedoch auch durch Annotieren einer Methode (= Getter) mit dem Namen get ~ erfolgen. Mit anderen Worten, Sie können die Korrelation auch innerhalb des Getters überprüfen.

@AssertTrue
@NotNull
private Boolean getValid() {
  /*Korrelationsprüfung*/
}

Anwendung

Bei der Durchführung einer Korrelationsprüfung mit einem Getter kann der Rückgabewert beliebig sein.

Mit anderen Worten, Sie können "Fehler 1, wenn der Rückgabewert" null "ist, Fehler 2, wenn er 1 oder mehr ist, ..." sagen. In dem Beispiel, das ich zuvor geschrieben habe, wird die Validierung als "NotNull" für "null", "AssertTrue" für nicht "true" durchgeführt.

Dies ermöglicht es, Fehlermeldungen für jeden Fehler zu trennen, ohne die Eigenschaften zu ändern.

Bereiten Sie ein Feld vor, um das Ergebnis der Korrelationsprüfung zu speichern

Bisher haben wir die Korrelationsprüfung eingeführt, indem wir der Funktion eine Anmerkung zugewiesen haben. Wenn Sie jedoch den Wert zum Zeitpunkt der Initialisierung im Feld speichern, können Sie die Korrelation auch überprüfen, indem Sie ihr eine Anmerkung zuweisen.

Recommended Posts

[Java] Korrelationsprüfung, ohne selbst eine Anmerkung mit Bean Validation zu erstellen
Bean Validation mit Micronaut (Java) hinzufügen
Einfache Eingabeprüfung mit Bean Validation!
Führen Sie Bean Validation 2.0 in Java SE-Programme ein