DAO vs Repository Pattern
Las Entities son nuestros objetos gestionados por el Entity Manager en el Contexto de Persistencia, en memoria. La manera que tenemos de pasar este conexto a base de datos es a traves del Repository Pattern. Pero también podemos utilizar Data Access Object (DAO), que en vez de ver las tablas de base de datos como Entities, el patrón DAO se puede ver más como una interfaz para una o varias tablas relacionadas. Tendremos un DAO por cada tabla.
La diferencia entre ambos patrones es bastante semántico, aunque usando DAO es mäs común tener mäs métodos especificos que un repositorio, ya que con el repository pattern modificariamos el entity JPA. Ejemplo: Una forma de evaluar que solución utilizar es analizar que datos necesitaräs y en que partes de la aplicación, e intentar diseñar projections que encajen con esos usos. Si sólo necesitamos proporcionar información al FE, podemos diseñar data objects que coincidan con el formato deseado y pasar de los DTOs. Pero si procesamos la información en un servicio, merece la pena aislar las transformaciones DTO si es posible. E incluso cuando no usemos Hibernate, podemos seguir utilizando Spring serialization views y marcar nuestros atributos de objetos con la antoación JSON View al igual que con las entidades.
La diferencia entre ambos patrones es bastante semántico, aunque usando DAO es mäs común tener mäs métodos especificos que un repositorio, ya que con el repository pattern modificariamos el entity JPA. Ejemplo: Una forma de evaluar que solución utilizar es analizar que datos necesitaräs y en que partes de la aplicación, e intentar diseñar projections que encajen con esos usos. Si sólo necesitamos proporcionar información al FE, podemos diseñar data objects que coincidan con el formato deseado y pasar de los DTOs. Pero si procesamos la información en un servicio, merece la pena aislar las transformaciones DTO si es posible. E incluso cuando no usemos Hibernate, podemos seguir utilizando Spring serialization views y marcar nuestros atributos de objetos con la antoación JSON View al igual que con las entidades.
Comentarios
Publicar un comentario