2014-03-06 78 views
4

是否有可能檢查一個字符串對休眠約束,而不必寫一個特殊的類爲它?例如,如果我只想檢查給定的字符串是否爲電子郵件,是否可以將其作爲一次性測試進行檢查,而無需編寫完整的類並驗證該類對於某個特定屬性的約束?單獨運行一個hibernate約束?

+0

看看'org.hibernate.validator.internal.constraintvalidators.EmailValidator',我認爲這是電子郵件驗證。 –

回答

4

您可以在實體類中使用@Email註解屬性。您可以在這個鏈接閱讀文檔:http://docs.jboss.org/ejb3/app-server/HibernateAnnotations/api/org/hibernate/validator/Email.html

編輯:

String email = "[email protected]"; 
EmailValidator validator = new EmailValidator(); 
validator.isValid(email, null); 

的方法「的IsValid」會,如果你的字符串是一個結構完整的電子郵件地址,返回true。

希望它有幫助!

+0

我知道我可以這樣做,這個問題是關於如何在字符串上運行這些約束而不必根據實體類來驗證它。 –

+0

儘管如此,通過這樣做,您可以實例化Hibernate Validator的實現類,除非您知道這不是可移植的解決方案,也不是您可以依賴的東西。對於一些臨時測試可能沒問題,但我不會在生產代碼中這樣做。 – Hardy

+0

@ Hardy然後獲得'EmailValidator'實例的最佳方式是什麼?有些情況下,我們需要驗證電子郵件列表,爲此我們需要'EmailValidator'。 – husayt