Hibernate Validator comes with some built-in constraints, which covers most basic data checks. As we'll see later, you're not limited to them, you can in a minute write your own constraints.
| Annotation | Apply on | Runtime checking | Hibernate Metadata impact |
|---|---|---|---|
| @Length(min=, max=) | property (String) | check if the string length match the range | Column length will be set to max |
| @Max(value=) | property (numeric or string representation of a numeric) | check if the value is less than or equals to max | Add a check constraint on the column |
| @Min(value=) | property (numeric or string representation of a numeric) | check if the value is more than or equals to min | Add a check constraint on the column |
| @NotNull | property | check if the value is not null | Column(s) are not null |
| @NotEmpty | property | check if the string is not null nor empty. Check if the connection is not null nor empty | Column(s) are not null (for String) |
| @Past | property (date or calendar) | check if the date is in the past | Add a check constraint on the column |
| @Future | property (date or calendar) | check if the date is in the future | none |
| @Pattern(regex="regexp", flag=) | property (string) |
check if the property match the regular expression given a match flag (see java.util.regex.Pattern )
|
none |
| @Range(min=, max=) | property (numeric or string representation of a numeric) | check if the value is between min and max (included) | Add a check constraint on the column |
| @Size(min=, max=) | property (array, collection, map) | check if the element size is between min and max (included) | none |
| @AssertFalse | property | check that the method evaluates to false (useful for constraints expressed in code rather than annotations) | none |
| @AssertTrue | property | check that the method evaluates to true (useful for constraints expressed in code rather than annotations) | none |
| @Valid | property (object) | perform validation recursively on the associated object. If the object is a Collection or an array, the elements are validated recursively. If the object is a Map, the value elements are validated recursively. | none |
| property (String) | check whether the string is conform to the email address specification | none |
Table 4.1. Built-in constraints