2016-06-30 4 views
1

Mit anderen Worten, wenn ich zwei Einschränkungen wie @Email und @NotNull die @Email Validator nicht werfen ein NPE?Wird Hibernate Validator @NotNull immer zuerst ausgelöst?

Es scheint offensichtlich, aber ich frage, weil ich sah, dass einige benutzerdefinierte Validatoren prüfen, ob der zu validierende Wert null ist und true zurückgibt, wenn dies der Fall ist. Dies scheint eine schlechte Idee zu sein, denn wenn der Entwickler vergessen hat, @NotNull in das Feld email hinzuzufügen, wird das E-Mail-Feld die Validierung noch bestehen.

TIA, Ole

Antwort

2

Rückkehr true für null ist beste Praxis betrachtet in Bean Validierung und alle Einbau-Einschränkungen einzuhalten, um es (soweit möglich). Die Bean Validation Spezifikation sagt in Abschnitt 3.4. Constraint validation implementation:

Obwohl nicht zwingend, es eine gute Praxis in Betracht gezogen wird, um die Kernbeschränkungsvalidierungs von den nicht null Beschränkungsvalidierungs (zum Beispiel zu spalten, eine @Email Einschränkung zurückkehren true für ein Null-Objekt, ie wird sich nicht um die @NotNull-Validierung kümmern.

null kann mehrere Bedeutungen haben, wird aber häufig verwendet, um auszudrücken, dass ein Wert keinen Sinn ergibt, nicht verfügbar ist oder einfach unbekannt ist. Diese Einschränkungen für den Wert sind in den meisten Fällen orthogonal zu anderen Einschränkungen. Zum Beispiel muss ein String, falls vorhanden, eine E-Mail sein, aber kann null sein. Die Trennung beider Anliegen ist eine gute Praxis.