Я застрял с проверкой в моем текущем случае использования.Мое приложение имеет стандартную структуру (WEB <-> EJB3 Services <-> EJB3 DAO <-> DB).У меня есть объект, к которому применены аннотации проверки.
@Entity
class PhoneNumber {
...
private NumberType numberType;
}
, где
enum NumberType {
FIXED,
MOBILE,
ANY
}
Теперь у меня есть новое правило проверки, которое нужно применить.При обновлении PhoneNumber не должно быть возможности изменить NumberType на ANY, если ранее было установлено значение FIXED или MOBILE.
Мои правила проверки бинов проверяются непосредственно перед операциями с БД, и вышеприведенное правило должно применяться на уровне обслуживания (по крайней мере, я так думаю), чтобы иметь доступ к БД для сравнения предыдущей версии объекта.Но если бин еще не проверен, я вынужден вручную проверить, если, например, numberType не равно нулю.
Можете ли вы дать мне несколько советов или общих правил, как работать с более сложными проверками бизнес-процессов (не только проверкой одногозначения поля изолированно) при использовании Bean Validation?