对于指定的域,Hibernate电子邮件模式失败

时间:2017-04-22 19:33:28

标签: java hibernate hibernate-validator

我使用@Pattern进行@Email验证,将电子邮件地址限制为仅限三个域和name.lastname用户名。但是我的代码失败了,每次都会显示消息。我究竟做错了什么?

@Embeddable
public class Contact
{
    @NotNull
    @NotEmpty
    private String              firstname;
    @NotNull
    @NotEmpty
    private String              lastname;
    @NotNull
    @NotEmpty
    @Email
    @Pattern.List({ @Pattern(regexp = ".+(@domain1.com|@domain-2.com|@dom-ain-three.com)", message = "Wrong email address") })
    private String              email;
}

1 个答案:

答案 0 :(得分:0)

正确的代码是:

@Embeddable
public class Contact
{
    @NotNull
    @NotEmpty
    private String              firstname;
    @NotNull
    @NotEmpty
    private String              lastname;
    @NotNull
    @NotEmpty
    @Email
    @Pattern.List({ @Pattern(regexp = ".+((@domain1\\.com)|(@domain-2\\.com)|(@dom-ain-three\\.com))", message = "Wrong email address") })
    private String              email;
}

转义点字符(表示除新行之外的任何字符)修复了正则表达式。