6
我怎么能去在下列情况下重写验证上的电子邮件为AuthorizedUser:JSR 303的验证覆盖
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;
}
我知道由二传手覆盖的电子邮件地址,我可以“砍”的解决方案对通过执行AuthorizedUser如下:
@Override
public void setEmail(String email) {
this.email = email;
super.setEmail(" ");
}
我就觉得肮脏...这是可能的,而无需编写自定义验证程序被重写?
我试着将@Valid移动到超类的setter中,并将它放在覆盖的字段中,但仍然收到超类中关于它为空的消息。有没有更懒惰的方法来做到这一点?
到目前为止,我结束了编写自定义验证,在我简单的例子下面的情况下工作,但在更复杂的模型中,我认为需要制作更多的课程是没有意义的。 – Scott