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,則對其中的值部分進行校驗. |
沒有 |