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