Как конвертировать Entity Bean в Value Object? - PullRequest
4 голосов
/ 17 июня 2011

Я занимаюсь разработкой серверной системы, предоставляющей услуги как для клиента, так и для браузера. Я решил использовать JPA для OR или Mapping для хранения БД. Это приводит к тому, что класс Entity Bean предоставляется клиенту, поэтому я стараюсь избегать такого дизайна, используя объекты-объекты и объекты передачи данных. Это означает, что мне нужны POJO и механизмы для обмена классами POJO и Entity Bean на разных системных шинах.

У меня вопрос: есть ли какой-либо шаблон разработки или служба, заданная EJB, может сделать это автоматически? Я очень не хочу проектировать однозначное отображение POJO - Entity Bean, которое трудно отделить и обновить.

Заранее спасибо

Ответы [ 2 ]

4 голосов
/ 17 июня 2011

Это приводит к тому, что класс Entity Bean предоставляется клиенту, поэтому я стараюсь избегать такой конструкции, используя объекты-объекты и объекты передачи данных.

Почему?В чем заключается проблема, оправдывающая такое зверское дублирование кода?

«Объект передачи данных» и неправильное использование имени «Объект значения» - это антипаттерны, которые были необходимы с EJB 2 Entity Beans, чтобы избежать чрезмерных обходов сервера.

Если вы используете JPA, у вас нет бинов сущностей.Ваши сущности являются POJO, и нет ничего плохого в том, чтобы выставлять их клиенту - на самом деле это одна из лучших вещей в JPA.

2 голосов
/ 17 июня 2011

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

...