Este fin de semana he tenido una grata sorpresa ya que el libro JPA Domain Driven Design ha sido nº1 de ventas en la web de Amazon.es en la categoría de programación 🙂 siendo de un tema muy especifico .Muchas gracias a las personas que lo han hecho posible 🙂 .
Me han llegado algunas preguntas de gente que ha comprado el libro y voy a aprovechar este articulo para aclarar una que me ha parecido interesante sobre el modelado. En éste se comienza desde cero hasta construir un modelo de dominio como el siguiente utilizando JPA y sus anotaciones:
Resulta que en el modelo existen dos conceptos de importe uno a nivel de Curso y otro a nivel de Matricula :
Delegación y JPA
La pregunta que me han hecho es :¿Podría eliminar uno de los importes? y usar el importe del Curso que es el realmente válido haciendo que la matricula delegue en él?. Es decir algo similar a lo siguiente:
EL Tiempo
En principio parece una simplificación posible ya que estaríamos cumpliendo con el principio DRY de no repetir código o información . Ahora bien si revisamos el concepto mas a detalle nos podremos dar cuenta de que esto no es así . Cuando modelamos tenemos que tener muy en cuenta el concepto de TIEMPO. ¿Es el importe que estamos almacenando el mismo el de Curso que el de Matrícula? .La realidad es que NO .Un curso puede cambiar su precio con el paso del tiempo .
En cambio una Matricula se almacena solo una vez cuando el alumno se inscribe. Por lo tanto los dos importes han de ser almacenados ya que si simplemente usáramos delegación cuando cambiaramos el precio de un Curso … todas las matriculas antiguas cambiarian sus importes. Lo cual es evidentemente un problema . Espero haber aclarado algunas dudas .
[…] artículos relacionados: Introducción a JPA , Libro JPA , JPA […]
Utility Project de Eclipse viene a ser como Maven? utilizo Maven.
Tendrias que hacer en maven un proyecto multimodulo y uno de los modulos sería un JAR que contiene todo los business object de JPA
Lo haré gracias arquitecto.
Cecilio en hora buena que te lo mereces, y segundo, existe una duda de concepto que tengo con respecto a la unidad de persistencia declarada en el archivo persistence.xml, el punto es que tengo muchas clases y veo que llenare ese archivo de casi mas o menos unas 25 lineas del path a las clases que mapa, también intente no especificar el path y funciona, pero estuve leyendo y me di cuenta que al momento de portar esa app tendría problemas ya que no las encuentra y la otra aunque ya como un agregado a esto mismo, encontré que hibernare… Read more »
Me parece muy bien la compra 🙂 yo también comparto libros con amigos . Esta claro que usar el path no es una buena opción.Que yo recuerde con poner todas las @Entity en un mismo jar y luego usar un utility proyect de eclipse para importarlas a los proyectos que nos interesen deberia valer.