У меня есть корпоративное приложение Java, которое предоставляет веб-службу, имеет уровень домена и уровень сохранения hibernate. В этом конкретном случае между объектами, которые я отправляю по проводу, объектам домена и объектам сохранения, нет огромной разницы (на данный момент).
В настоящее время приложение использует DTO на стороне персистенции и аннотирует классы домена с аннотациями JAXB. Однако, чем больше я читаю и думаю об этом, тем больше это кажется обратным! (Не говоря уже о том, что существует много кода для поддержки бессмысленных взад и вперед между объектами DTO и Domain). Похоже, что большинство архитекторов предлагают помещать аннотации JPA в модель домена и создавать DTO для отправки объектов по кабелю.
В моем случае могу ли я разместить аннотации JAXB и JPA (Hibernate) на своих классах доменов?
Мысль о том, что мой фасад веб-сервиса, мой домен и моя настойчивость тесно связаны друг с другом, кажутся легкими в обслуживании, но меня это волнует, поскольку они могут со временем меняться. Но было бы разумнее создать набор классов DTO для стороны веб-служб и пропустить DTO для стороны сохранения?