Должен ли я использовать Bean Validation с EJB 3.1, JSF2.0 и JPA? - PullRequest
6 голосов
/ 04 марта 2010

У меня есть приложение JSF 2.0, для которого я хотел бы начать добавлять валидаторы. Базовый обзор архитектуры приложения выглядит следующим образом.

У меня есть управляемые компоненты поддержки, которые содержат экземпляры моих аннотированных классов JPA и EJB. EJB отвечают за транзакционный доступ к базе данных. Аннотированные классы JPA привязаны к моим фейслетам (и используют EJB для доступа к БД).

Я хотел бы потенциально использовать проверку Бина и написать собственные ограничения, однако это будет означать, что я должен добавить эти ограничения к моим аннотированным классам JPA. Мне кажется, что это нарушает мое разделение интересов. (Смешивание представления / валидации с аннотированными классами / DAO JPA). В этом случае лучше не использовать валидацию Бина? Моя структура имеет недостатки? Есть ли предпочтительный способ сделать это, о котором я не знаю?

Спасибо!

1 Ответ

5 голосов
/ 04 марта 2010

Проверка является частью вашей бизнес-логики и, следовательно, должна присутствовать в вашей доменной модели, которая является вашими персистентными сущностями. Так что нет ничего плохого в том, чтобы они были в ваших сущностях JPA.

Валидации не относятся к презентации, потому что даже если вы измените свой уровень презентации (скажем, вы собираетесь предоставлять кучу веб-сервисов на ваших EJB), проверка все равно должна быть там.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...