2010-12-22 10 views
12

Ich bemerkte, dass alle integrierten Einschränkungen einen leeren Wert für den validatedBy Parameter in @Constraint haben. d. h.Leer validiertBy in @Constraint

Erstens, warum dürfen sie einen leeren Wert für validatedBy haben? Ich dachte, Sie können es nur für die Constraint-Komposition leer lassen, die keine zusätzliche Validierung benötigt? Beachten Sie auch, dass der Hibernate-Validator immer noch eine Validator-Implementierungsklasse für jede integrierte Integritätsregel finden kann, obwohl die validatedBy leer ist. Wenn ich aber validatedBy für meine Integritätsbedingung leer lasse, wird mein benutzerdefinierter Validierer nicht ausgewählt. Warum das?

Danke.

+0

Ein weiterer Grund, warum ich denke seine API ist fehlerhaft –

+1

nur für die Vollständigkeit, das wurde hier beantwortet: http://stackoverflow.com/questions/26544588/hibernate-validator-to-validate-constraints-if-constraintvalidated-by –

Antwort

9

Diese integrierten Funktionen werden auf spezielle implementierungsspezifische Weise behandelt und ihre Validatoren werden programmgesteuert konfiguriert.

Für Hibernate Validator ist es in ConstraintHelper.java getan. Ich denke, Sie können das für Ihre benutzerdefinierten Einschränkungen nicht erreichen.

+0

Danke, so kann ich nicht verlassen die validatedBy für meine Einschränkung leer und erwarten, dass Hibernate Validator meinen benutzerdefinierten Validator aufnimmt? –

+3

Nein, Sie müssen Ihren benutzerdefinierten Validator in der Annotation angeben, damit Hibernate ihn finden kann. – Guillaume

5