Erzeugen eines Fehlercodes pro Eigenschaft im Hibernate Validator

8

Ich verwende den Hibernate Validator für eine Anforderung von mir. Ich möchte eine JavaBean validieren, wo Eigenschaften mehrere Validierungsprüfungen haben können. Zum Beispiel:

%Vor%

Aber wenn diese Eigenschaft die Validierung nicht besteht, möchte ich einen bestimmten Fehlercode mit der ConstraintViolation verknüpfen, unabhängig davon, ob er wegen @Required oder @Length fehlgeschlagen ist, obwohl ich die Fehlermeldung beibehalten möchte.

%Vor%

Etwas wie das obige wäre gut, aber es muss nicht genau so strukturiert sein. Ich kann keine Möglichkeit sehen, dies mit Hibernate Validator zu tun. Ist es möglich?

    
Mike Q 18.04.2010, 21:02
quelle

3 Antworten

4

Sie könnten eine benutzerdefinierte Annotation erstellen, um das gesuchte Verhalten zu erhalten. Anschließend können Sie den Wert der Annotation durch Validierung und Verwendung der Reflektion extrahieren. Etwas wie das Folgende:

%Vor%

In deiner Bohne:

%Vor%

Beim Überprüfen Ihrer Bean:

%Vor%

Nachdem ich gesagt habe, dass ich wahrscheinlich die Anforderungen für Fehlercodes für diese Art von Nachrichten in Frage stellen würde.

    
Ross 26.05.2010 09:04
quelle
0

Aus dem Abschnitt 4.2. ConstraintViolation der Spezifikation:

  

Die Methode getMessageTemplate gibt die nicht interpolierte Fehlermeldung zurück (normalerweise das Attribut message in der Constraint-Deklaration). Frameworks können dies als Fehlercodeschlüssel verwenden.

Ich denke, das ist Ihre beste Option.

    
Pascal Thivent 18.04.2010 23:15
quelle
0

Was ich versuchen würde, ist dieses Verhalten auf der DAO-Ebene der Anwendung zu isolieren.

Mit Ihrem Beispiel hätten wir:

%Vor%

Und die folgende Ausnahmeklasse:

%Vor%

Sie könnten einige Annotationsinformationen basierend auf der Eigenschaft hinzufügen, die nicht von hier validiert wurde, aber immer mit der DAO-Methode.

Ich hoffe, das hat geholfen.

    
mtrovo 21.05.2010 14:08
quelle