по электронной почте Ой. Сожалею. Это решение для Spring Data Rest.
Если вы используете Spring Data JPA, вы должны выполнять проверку вручную перед каждым вызовом JPA.
------ отредактировано
@Configuration
@RequiredArgsConstructor
protected class RepositoryConfig implements RepositoryRestConfigurer {
private static final String BEFORE_CREATE = "beforeCreate";
private static final String BEFORE_SAVE = "beforeSave";
@Override
public void configureValidatingRepositoryEventListener(ValidatingRepositoryEventListener validatingListener) {
validatingListener.addValidator(BEFORE_CREATE, createValidator());
validatingListener.addValidator(BEFORE_SAVE, saveValidator());
}
}
реализует компоненты createValidator()
и saveValidator()
:
public class CreateValidator implements Validator {
private final LocalValidatorFactoryBean smartValidator;
@Override
public boolean supports(Class<?> clazz) {
return true;
}
@Override
public void validate(Object target, Errors errors) {
smartValidator.validate(target, errors, {whatEverHintsYouWant} );
}
}
Внедрить в него служебный компонент и при необходимости вычислить подсказки.
Вы можете даже создать разные валидаторы для каждого объекта, используя метод supports
.