【问题标题】:Running a hibernate constraint individually?单独运行休眠约束?
【发布时间】:2014-03-06 11:03:09
【问题描述】:

是否可以根据休眠约束检查字符串,而不必为其编写特殊的类?例如,如果我只想检查给定的字符串是否是电子邮件,是否可以在不编写完整类并针对类的特定属性验证该约束的情况下将其作为一次性测试进行检查?

【问题讨论】:

  • 查看org.hibernate.validator.internal.constraintvalidators.EmailValidator,我认为它会进行电子邮件验证。

标签: java hibernate hibernate-validator


【解决方案1】:

您可以在实体类中使用@Email 注释属性。您可以阅读此链接中的文档:http://docs.jboss.org/ejb3/app-server/HibernateAnnotations/api/org/hibernate/validator/Email.html

已编辑:

String email = "email@test.com";
EmailValidator validator = new EmailValidator();
validator.isValid(email, null);

如果您的字符串是格式正确的电子邮件地址,“isValid”方法将返回 true。

希望对你有帮助!

【讨论】:

  • 我知道我能做到,这个问题是关于如何在字符串上运行这些约束,而不必针对实体类对其进行验证。
  • 请注意,这样做是在实例化 Hibernate Validator 的实现类,这是不应该做的,除非您知道这既不是可移植的解决方案,也不是可以依赖的东西。一些临时测试可能没问题,但我不会在生产代码中这样做。
  • @Hardy 那么获得EmailValidator 实例的最佳方法是什么?在某些情况下,我们需要验证电子邮件列表,为此我们需要 EmailValidator
  • 像这样使用 EmailValidator 就可以了。只是我们不保证内部类的向后 API 稳定性。对于公共 API 和 SPI,我们尝试不破坏现有合约或至少提供迁移路径。我们可能会在没有迁移路径且没有任何警告的情况下更改内部类。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-08
  • 1970-01-01
  • 2016-12-20
相关资源
最近更新 更多