Я не знаю ни одного готового к использованию решения.Как вы подозреваете, JSR-303 не будет выполнять эту работу, потому что его проверка является «статической».
Но ...
Идея состоит в том, чтобы использовать некоторые методы АОП для этого.Итак ...
если для объекта установлен удаленный флаг, вы не можете изменить объект
Этот вариант я бы реализовал как проксиметод зарегистрирован вокруг каждого сеттера.Прокси-метод будет проверять флаг «удален».Если для него задано значение true, будет сгенерировано исключение, в противном случае будет выполнен исходный метод.
Вы не можете изменить свойство даты начала, после того как дата пройдена
Этот похож.На этот раз у вас не будет доступа ни к какому другому свойству перехваченного установщика, но к исходному (пока не измененному) значению поля и аргумента установщика.боб
Это то же самое, что и с датами, единственная разница - тип даты (дата против целого числа).
Можно утверждать, что AOP являетсяхороший выбор для этой задачи, но все же решение.Я тоже сомневаюсь.
Еще одна проблема заключается в том, что, я думаю, вы захотите применить эти ограничения к сущностям JPA.Таким образом, использование Spring AOP будет не таким простым, поскольку сущности не будут управляться Spring.