Java + Spring + Jakarta Validation. Самописный «аддон» для валидации Entity через БД и EntityManager
Валидации "первого круга" в jakarta.validation представлены прекрасно (NotNull, NotBlank и пр. аннотации). Статья про валидации "второго круга". К ним можно отнести такие наиболее типичные операции:
• Проверка поля на уникальность при создании новой сущности (записей со значением X поля N на момент сохранения быть не должно).
• Проверка поля на уникальность при обновлении сущности (при обновлении запись со значением X поля N должна оставаться только одна).
• Проверка существования проставленных FK-связей.
• Проверка существования самой сущности в случае обновления (делается, как правило, по ее ID-шке).
• Возможно, проверка unmodified-полей для обновления, т.е. если поле неизменяемое, но во входных данных мы пытаемся его изменить - исключение.
Решение не законченное, но интересное.
https://habr.com/ru/articles/839006/