Come posso fare per sovrascrivendo la convalida sulla e-mail per l'AuthorizedUser nella seguente situazione:JSR 303 Convalida Override
public class Account {
@Length(min = 1, max = 100,
message = "'Email' must be between 1 and 100 characters in length.")
@NotNull(message = "'Email' must not be empty.")
protected String email;
@Length(min = 1, max = 50,
message = "'Name' must be between 1 and 50 characters in length.")
private String name;
}
public class AuthorizedUser extends Account {
@Length(min = 1, max = 40,
message = "'Field' must be between 1 and 50 characters in length.")
private String field;
}
So che potrei 'hackerare' la soluzione sovrascrivendo l'indirizzo di posta elettronica nel setter sul AuthorizedUser effettuando le seguenti operazioni:
@Override
public void setEmail(String email) {
this.email = email;
super.setEmail(" ");
}
Si sente solo sporco ... questo è possibile per essere sovrascritti senza scrivere un validatore personalizzato?
Ho provato a spostare @Valid sul setter nella super classe e a lasciarlo fuori nel campo sottoposto a override, ma continuo a ricevere il messaggio dalla super classe che è vuoto. C'è un modo più pigro per farlo?
Finora ho finito per scrivere un validatore personalizzato, nel mio esempio semplificato i casi di opere qui sotto ma nel modello più complesso che ho non aveva senso aver bisogno di fare molte altre classi. – Scott