У меня были похожие вопросы и проблемы относительно того, как конвертировать между объектами Hibernate и объектами передачи данных, возвращаемыми веб-службой, как обсуждалось в этом вопросе:
Использование объектов передачи данных в ejb3 считается лучшей практикой
Один из факторов, упомянутых здесь, заключается в том, что в случае изменения модели домена набор DTO защитит потребителей в случае веб-службы.
Несмотря на то, что кажется, что это добавит значительный объем кода в мой проект, эти рассуждения кажутся обоснованными.
Есть ли хороший шаблон проектирования, который я могу использовать для преобразования объекта Hibernate (который реализует интерфейс) в DTO, который реализует тот же интерфейс?
Таким образом, предполагая, что оба из следующих объектов реализуют 'Book', мне нужно будет преобразовать BookEntity.class в BookDTO.class, чтобы я мог позволить JAXB сериализоваться и возвращаться.
Опять же, вся эта перспектива кажется мне сомнительной, но если есть хорошие способы помочь справиться с этим обращением, я бы хотел получить некоторое представление.
Возможно, есть какой-нибудь интересный способ конвертации с помощью отражения? Или шаблон «строителя», о котором я не думаю?
Должен ли я просто игнорировать шаблон DTO и обмениваться сущностями?