2010-10-03 13 views
5

Tengo algunos objetos de Java con capacidad de persistencia con todas las @annotaciones en mi aplicación web. Todos estos objetos residen en una capa de datos. ¿Es una mejor práctica usar estos objetos de persistencia como objetos de transferencia de datos?Entidades de persistencia como objetos de transferencia de datos

Por ejemplo, si deseo devolver los datos obtenidos del almacén de datos, ¿debo devolver esos objetos de persistencia directamente o debo copiar manualmente los datos a un DTO intermediario y pasarlos a otras capas? ¿Qué enfoque sugerirías?

Respuesta

1

Yo diría que está bien hacerlo (de hecho, la principal ventaja de estos ORM fuera a usar estos objetos de dominio en diferentes capas w/o tener dtos innecesarios) si se siguen las siguientes pautas:

  1. No extiende los límites de la sesión, es decir, cualquier cambio relacionado con la base de datos siempre debe hacerse utilizando la Capa de acceso a datos que ha definido y no a través de estos objetos pasados ​​en otras capas.
  2. Cualquier dato que necesite en otra capa (capas encima de la Capa de acceso a datos como Capa lógica de negocios y Capa de presentación) se rellena previamente en estos objetos; de lo contrario, obtendrá excepciones según el comportamiento de ORM.
  3. No extienda los límites de sesión para la solución del problema mencionado en el número 2
+0

+1 bien dicho. Así es exactamente como los usamos en nuestro producto también. –

0

Nunca he necesitado el nivel extra de abstracción proporcionado al copiar la instancia de persistencia a una clase de DTO diferente.

1

Si está absolutamente seguro de que las copias no terminarán en el almacenamiento de la sesión o se persistirán/migrarán a otra instancia/lo que sea, no es necesario hacerlo.

Si necesita mantener estos objetos en varias sesiones/solicitudes, entonces tiene sentido.

Otro caso de uso es cuando necesita desacoplar loginc y la capa de persistencia muy a fondo (es decir, para intercambiar diferentes capas de persistencia), entonces el acoplamiento a través de las anotaciones puede ser problemático.

Cuestiones relacionadas