指定域的休眠电子邮件模式失败

Hibernate email pattern fails for specified domains

我正在使用 @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;
}

正确的代码是:

@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;
}

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