为电子邮件存在制作自定义休眠验证注释

时间:2011-12-04 13:43:52

标签: hibernate spring java-ee bean-validation hibernate-validator

我想知道是否可以进行自定义hibernate验证注释 如果电子邮件存在与否,将检查数据库(调用dao方法并在电子邮件存在时返回true)

所以我可以这样做:

    @NotBlank(message = "email is required")
@Email(message = "{invalid.email}")
    @EmailExist(message = "{email.exist}")
@Column(name = "email", length = 155, nullable = false)       
private String email;

如果可能请提供样品建议,提前谢谢。

2 个答案:

答案 0 :(得分:1)

是的,应该可以,您只需要实现自定义注释验证器实现。

如果您使用真正的AspectJ并使用@Configurable注释该类,那么您可以像使用其他所有Spring bean一样使用@Inject

@see:

答案 1 :(得分:1)

不需要AspectJ魔法。如果你正在使用spring,你只需要@Autowire - 注释你的领域,spring将注入DAO。请参见Spring Reference 5.7.2.2 Configuring Custom Constraints

  

默认情况下,LocalValidatorFactoryBean配置一个   使用Spring创建的SpringConstraintValidatorFactory   ConstraintValidator实例。这允许您的自定义   ConstraintValidators受益于依赖注入   其他春豆。

所以你唯一的工作就是编写自定义注释。在网上很容易找到样品。