JSR303注解


Annotation 屬於Bean Validation 規范 應用位置 作用 對Hibernate Core中的元數據的影響
@AssertFalse yes field/property 檢查被標注的值是否為false. 沒有
@AssertTrue yes field/property 檢查被標注的值是否為true. 沒有
@CreditCardNumber no 字段或屬性, 要求其類型為String. 檢查被標注的字符串能否通過Luhn Checksum test. 注意, 這個約束條件是為了防止用戶手誤, 並不對信用卡有效性進行檢測. 請參考Anatomy of Credit Card Numbers. 沒有
@DecimalMax yes 字段或屬性. 支持類型包括BigDecimal, BigInteger, String, byte, short, int, long和其各自對應的包裝器類型. 被標注的值必須不大於約束中指定的最大值. 這個約束的參數是一個通過BigDecimal定義的最大值的字符串表示. 沒有
@DecimalMin yes 字段或屬性. 支持類型包括BigDecimal, BigInteger, String, byte, short, int, long和其各自對應的包裝器類型. 被標注的值必須不小於約束中指定的最小值. 這個約束的參數是一個通過BigDecimal定義的最小值的字符串表示. 沒有
@Digits(integer=, fraction=) yes 字段或屬性. 支持類型包括BigDecimal, BigInteger, String, byte, short, int, long和其各自對應的包裝器類型. 檢查此值是否是一個數字,並且這個數字的整數部分不超過integer定義的位數, 和小數部分不超過fraction 定義的位數. 對應的數據庫表字段會被設置精度(precision)和准度(scale).
@Email no 字段或屬性, 需要是String類型的. 檢查所給的字符串是否符合email地址的格式. 沒有
@Future yes 字段或屬性, 支持類型是java.util.Date 和 java.util.Calendar. 檢查給定的日期是否比現在晚. 沒有
@Length(min=, max=) no 字段或屬性, 需要是String類型的. 檢查該字符串的長度是否在min 和 max規定的范圍內. 對應的數據庫表字段的長度會被設置成約束中定義的最大值.
@Max yes 字段或屬性. 支持類型包括BigDecimal, BigInteger, String, byte, short, int, long和其各自對應的包裝器類型. 檢查該值是否小於或等於約束條件中指定的最大值. 會給對應的數據庫表字段添加一個check的約束條件.
@Min yes 字段或屬性. 支持類型包括BigDecimal, BigInteger, String, byte, short, int, long和其各自對應的包裝器類型. 檢查該值是否大於或等於約束條件中規定的最小值. 會給對應的數據庫表字段添加一個check的約束條件.
@NotNull yes field/property 檢查該值不為null.. 對應的表字段不允許為null.
@NotBlank no field/property 檢查該字符串不為null,並且不是空字符串. 本約束和下面的@NotEmpty的不同之處在於,本約束只能被用在字符串類型上,並且會忽略字符串尾部的空白字符. 沒有
@NotEmpty no 字段或屬性. 支持的類型包括String, Collection, Map 和數組. 檢查該值不為null同時也不為空. 沒有
@Null yes field/property 檢查該值應該為null. 沒有
@Past yes 字段或屬性, 支持類型是java.util.Date 和 java.util.Calendar. 檢查標注對象中的值表示的日期比當前早. 沒有
@Pattern(regex=, flag=) yes 字段或屬性, 需要是String類型的. 檢查該字符串是否能夠在match指定的情況下被regex定義的正則表達式匹配. 沒有
@Range(min=, max=) no 字段或屬性. 支持類型包括BigDecimal, BigInteger, String, byte, short, int, long和其各自對應的包裝器類型. 檢查該值是否在[min, max)之間 沒有
@Size(min=, max=) yes 字段或屬性. 支持的類型包括String, Collection, Map 和數組. 檢查該值的size是否在[min, max)之間. 對應的數據庫表字段的長度會被設置成約束中定義的最大值.
@ScriptAssert(lang=, script=, alias=) no 要使用這個約束條件,必須先要保證Java Scripting API 即JSR 223 ("Scripting for the JavaTM Platform")的實現在類路徑當中. 如果使用的時Java 6的話,則不是問題, 如果是老版本的話, 那么需要把 JSR 223的實現添加進類路徑. 這個約束條件中的表達式可以使用任何兼容JSR 223的腳本來編寫. (更多信息請參考javadoc) 沒有
@URL(protocol=, host=, port=) no 字段或屬性, 要求其類型為String. 判斷該值是否是一個有效的URL, 如果給出了約束中的protocol, host 或 port 參數的話,那個被校驗的值需要和其匹配. 沒有
@Valid yes 字段或屬性. 支持所有的非原始類型. 遞歸的對關聯對象進行校驗, 如果關聯對象是個集合或者數組, 那么對其中的元素進行遞歸校驗,如果是一個map,則對其中的值部分進行校驗. 沒有


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM