Ich benutze Hibernate-Validator wie @NotEmpty, um zu sehen, ob eine bestimmte Eigenschaft in einer Klasse leer ist oder nicht. Die Klasse ist wie gezeigt:Hibernate Validator: Verwenden von if - sonst Art von Logik in Annotation
@Entity
@Table(name="emergency_messages")
public class EmergencyMessages implements Serializable {
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
@Column(name="id", nullable=false)
private Integer id;
@NotEmpty(message="Home message cannot be empty")
@Column(name="home_page_message")
private String homePageMessage;
@Range(min=0, max=1, message="Please select one of the display announcement value")
@Column(name="messages_enabled")
private Integer messagesEnabled;
}
So weit so gut. Immer wenn die Eigenschaft "homePageMessage" leer ist, kann ich die korrekte Fehlermeldung im Formular im Browser sehen.
Jetzt hat sich die Situation geändert. Die neue Anforderung ist, dass die Eigenschaft "homePageMessage" nur dann leer sein kann, wenn die andere Eigenschaft "messagesEnabled" auf 1 gesetzt ist. Wenn sie auf 0 gesetzt ist, sollte für "homePageMessage" kein leerer Check durchgeführt werden. In einfachen Worten sollte die Validierung von "homePageMessage" nun vom Wert "messagesEnabled" abhängig sein.
Meine Frage: Ist das mit Annotationen möglich? Wenn nicht, dann muss ich meinen Hibernate-Validator-Mechanismus demontieren und meine eigene Validierungsklasse erstellen.
Vielen Dank für den Link. Es war hilfreich. Ich werde versuchen, eine benutzerdefinierte Anmerkungen zu schreiben. – Raj
Gute Sachen mein Mann. –