У меня есть проект, в котором модель данных и бизнес-слой расположены в двух разных модулях. Разумеется, модуль bussiness имеет зависимость от модельного модуля. Аутентификация объекта реализуется посредством аннотаций java-validation-api.Где внедрить проверку соответствия между сущностями?
Мне интересно, где я должен реализовать проверку соответствия между сущностями (проверка бизнеса, где проверяются отношения между различными типами сущностей). В настоящее время я вижу следующие варианты:
- Создание пользовательских javax.validation.ConstraintValidators и связанных аннотаций. Проблема в том, что валидатору нужен доступ к бизнес-сервисам, т. Е. Для получения связанных объектов, но модуль модели не должен иметь зависимости от бизнес-модуля.
- Внедрение кросс-сущности-проверки в методах persist/merge-методов бизнес-услуг (то есть с использованием перехватчиков). Это было бы возможно, но проверка соответствия между сущностями была отделена от проверки сущности, и я хотел бы иметь только одно место для проверки.
Какой вариант предпочтительнее? Есть ли лучшие предложения?
Спасибо, Sebastian
Спасибо за ответ. –
Итак, если на отдельном уровне было больше, чем просто методов доступа к данным, т. Е. Сложных вычислений, необходимых для проверки, вы предпочтете вариант 2, правильно? Или любой другой? –
Модель - это правильное место для сложных вычислений, так что, 1. выглядите лучше, если мы хотим как можно лучше придерживаться MVC. Очевидно, что если эти вычисления выполняются на сервисном уровне, и нет смысла перемещать их в другом месте, используя опцию 2. было бы лучше. –