Tengo una aplicación empresarial Java que proporciona un servicio web, tiene una capa de dominio y una capa de persistencia de hibernación. En este caso particular, no hay una gran diferencia (por el momento) entre los objetos que envío por cable, los objetos de dominio y los objetos de persistencia.¿Las clases de dominio generalmente obtienen anotaciones JPA o JAXB o ambas?
Actualmente la aplicación utiliza DTO en el lado de persistencia y anota las clases de dominio con anotaciones JAXB. Sin embargo, cuanto más leo y pienso en él, ¡más parece al revés! (Sin mencionar que hay un montón de código para soportar el ir y venir entre los DTO y los objetos de Dominio.) Parece que la mayoría de los arquitectos sugieren poner anotaciones JPA en el modelo de dominio y crear DTO para enviar objetos por cable.
En mi caso, ¿podría poner las anotaciones JAXB y JPA (Hibernate) en mis clases de dominio?
La idea de mantener la fachada de mi servicio web, mi dominio y mi persistencia bien unidos parece fácil de mantener, pero me preocupa, ya que pueden necesitar cambiar a tiempo. Pero, ¿sería más inteligente crear un conjunto de clases de DTO para el lado de los servicios web y omitir las DTO para el lado de la persistencia?
Tiene sentido que, tarde o temprano, tendrá que separarlos en capas. Pero en un proyecto completamente nuevo, se ahorra mucho tiempo para combinarlos. Es bueno saber que no hay malos efectos secundarios de hacer esto. – HDave
Y aquí vuelvo a estar dos años desglosándolos porque nuestra aplicación web cliente solo quiere consumir los datos que necesita, por lo que estamos haciendo DTO (con anotaciones JAX-B) que están separados de nuestras entidades de dominio (JPA). – HDave