В проекте, над которым я сейчас работаю, мы используем множество java проверок бинов. Во многих из этих проверок нам нужно извлекать сущности из уровня данных, чтобы их можно было использовать в процессе проверки.
Скажем, к примеру, у нас есть код ограничения класса Car.java
@FirstValidation
@SecondValidation
public class Car {
private Engine engine;
private List<Tires> tires;
...
}
@FirstValidation
:
public class FirstValidationValidator implements ConstraintValidator<FirstValidation, Car> {
private final EngineRepository engineRepository;
@Override
public boolean isValid(Car car, ConstraintValidatorContext context) {
Engine engine = engineRepository.findEngineByCarId(car.getId());
// do some validation with engine instance
}
}
@SecondValidation
код ограничения выглядит следующим образом:
public class SecondValidationValidator implements ConstraintValidator<SecondValidation, Car> {
private final EngineRepository engineRepository;
@Override
public boolean isValid(Car car, ConstraintValidatorContext context) {
Engine engine = engineRepository.findEngineByCarId(car.getId());
// do some validation with engine instance
}
}
Что меня интересует, так это способ, которым я могу найти сущности, используемые в валидациях до начала валидаций, и поместить их в какой-то контекст, поэтому мне не нужно извлекать эти сущности для каждой валидации отдельно