GovernIB / projectebase

Projecte Base - JBoss 7.2 EAP & Open JDK 11
4 stars 0 forks source link

Definir modelo propio para capa de servicio #81

Closed acuevas-dgtic closed 3 years ago

acuevas-dgtic commented 4 years ago

Definir modelo propio para capa de servicio, independiente del modelo mapeado en JPA (actualmente en módulo persistence). El modelo mapeado en JPA sería mejor que quedase interno en la capa de negocio, sin visibilidad en la capa web. Este enfoque tiene como desventaja tener que trasladar datos entre modelo JPA y modelo de negocio, pero queda la capa de negocio mucho mejor definida y evita los problemas de navegación entre objetos JPA (errores inicialización lazy) . Hay librerías que facilitan esta traslado de datos (p. ej.: mapstruct)

antonireus commented 4 years ago

S'ha afegit un component projectebase-service per la capa indicada a #80, i dins el package es.caib.projectebase.service.model s'inclouen els DTO que es fan servir tant a la capa web com a la capa REST.

Dins la capa EJB es realitza la conversió entity <-> dto emprant l'eina MapStruct.

Coses a comentar:

antonireus commented 3 years ago

Al final he optat per duplicar les anotacions de validació. Les que estan als entity garanteixen la validesa del que s'envia a BDD, mentre que les que estan als dto serveixen de cara a la capa de presentació.