模型 class 名称与 spring 验证注释同名

Model class name has the same name as spring validation annotation

我想使用@Email 注释验证项目中的电子邮件字段。但问题是我的模型 class name 也是 Email。 所以它显示异常 'Email cannot be converted to Annotation'。 是否有任何解决方案(不更改 class 名称)。

这是我的模型class:

public class Email implements EntityMarker{
 @NotEmpty
 @Email
 private String emailId;
 @NotEmpty
 @Size(max = 15, message = "Your name must be less than 15 characters")
 private String name;
}

@Email validator 注释属于 hibernate-validator。

当您只使用 @Email 时,IDE 将无法判断这是 hibernate-validator 还是您的 class 名称。

所以像这样使用验证器:

public class Email implements EntityMarker{ 
  @NotEmpty
  @org.hibernate.validator.constraints.Email
  private String emailId;
  ..//do whatever you want
}

要使用 @Email 注释,请在您的 pom.xml 文件中包含 hibernate-validator 依赖项。

<!-- Hibernate -->
<dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-validator</artifactId>
    <version>5.1.1.Final</version>
</dependency>

如果有帮助,请告诉我。