2016-09-29 4 views
0

Ich habe Klasse: Gibt es solche Einschränkungen (Hibernate Validator), die Klassenfelder verwenden können?

public class QueryFilterDTO { 

@NotEmpty 
private List<String> senders; 

@NotEmpty 
private List<String> subjects; 

private Date startDate; 
private Date endDate; 

@NotEmpty 
private List<String> countries; 

@NotEmpty 
private List<String> companySizes; 

public QueryFilterDTO() { 

} 

Und ich brauche Datum Validierung zu tun: startDatenicht größer alsendDate sein muss. Aber ich habe so etwas in HV nicht gefunden.

Sollte ich es selbst implementieren? (custom constraints)

Antwort

0

Wahrscheinlich ist der einfachste Weg, wie folgt aus:

@PrePersist 
protected void validateDates() { 
    if(startDate.after(endDate){ 
    //throw a new custom validation exception.. 
    } 
} 
+0

Wie kann ich Ausnahme auslösen, wie es funktioniert Hibernate Validator? (Zum Beispiel wenn NotEmpty leer ist). – Woland

+0

Um zu testen und zu sehen, ob es tatsächlich funktioniert, können Sie etwas tun wie: Neue RuntimeException auslösen ("startDate darf nicht später als endDate sein"); – GavinF

+0

PrePersist ist zu spät. Ich muss das Objekt vor (während) der Erstellung validieren, aber nicht vor dem Schreiben in die DB. – Woland

Verwandte Themen