Ответ
В Java ограничения для валидации данных задаются с помощью аннотаций из спецификации Bean Validation (JSR 380), обычно из пакета javax.validation.constraints или jakarta.validation.constraints.
Основные аннотации:
@NotNull— значение не должно бытьnull.@Size(min=, max=)— ограничение длины строки или размера коллекции.@Min(value)и@Max(value)— ограничение для числовых значений.@Email— проверка формата email.@Pattern(regexp=)— проверка по регулярному выражению.
Пример класса сущности:
import javax.validation.constraints.*;
public class User {
@NotNull(message = "Name cannot be null")
@Size(min = 2, max = 50)
private String name;
@Min(18)
@Max(120)
private int age;
@Email
@NotNull
private String email;
}
Проверка ограничений: Для валидации используется интерфейс Validator.
ValidatorFactory factory = Validation.buildDefaultValidatorFactory();
Validator validator = factory.getValidator();
User user = new User();
Set<ConstraintViolation<User>> violations = validator.validate(user);
for (ConstraintViolation<User> violation : violations) {
System.out.println(violation.getMessage());
}
Почему это важно: Этот подход декларативен, отделяет правила валидации от бизнес-логики и стандартизирован, что позволяет использовать одни и те же аннотации на разных уровнях приложения (например, в DTO и сущностях JPA).