Java 单独运行hibernate约束?

Java 单独运行hibernate约束?,java,hibernate,hibernate-validator,Java,Hibernate,Hibernate Validator,是否可以根据hibernate约束检查字符串,而不必为其编写特殊类?例如,如果我只想检查给定字符串是否是电子邮件,是否可以将其作为一次性测试进行检查,而无需编写完整的类并针对该类的特定属性验证该约束?您可以在实体类中使用@email注释该属性。您可以阅读此链接中的文档: 编辑: String email = "email@test.com"; EmailValidator validator = new EmailValidator(); validator.isValid(email, nul

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

您可以在实体类中使用@email注释该属性。您可以阅读此链接中的文档:

编辑:

String email = "email@test.com";
EmailValidator validator = new EmailValidator();
validator.isValid(email, null);
如果字符串是格式正确的电子邮件地址,则方法“isValid”将返回true


希望有帮助

查看
org.hibernate.validator.internal.constraintvalidators.EmailValidator
,我认为它可以进行电子邮件验证。我知道我可以做到这一点,这个问题是关于如何在字符串上运行这些约束,而不必对实体类进行验证。请注意,通过这样做,您正在实例化Hibernate Validator的实现类,您不应该这样做,除非您知道这既不是一个可移植的解决方案,也不是一个可以依赖的解决方案。对于一些特别的测试可能是可以的,但我不会在生产代码中这样做。@Hardy那么,获得
EmailValidator
实例的最佳方法是什么?在某些情况下,我们需要验证电子邮件列表,为此我们需要
EmailValidator
。这样使用EmailValidator是可以的。只是我们不能保证内部类的向后API稳定性。对于公共API和SPI,我们试图不破坏现有契约,或者至少提供迁移路径。我们可能在没有迁移路径和任何警告的情况下更改内部类。