Libro:Arquitectura Java JPA (Domain Driven Design)

Después de escribir mi primer libro Arquitectura Java Solida  (gratuito) y la gran aceptación que ha tenido por parte de la comunidad  me he animado a escribir un segundo libro en formato Kindle y que se titula “Arquitectura Java JPA Domain Driven Design” .Quiero agradecer desde aquí el animo ,las ideas y el apoyo que he recibido de parte de Olga Peláez , Jose Sanchez , David Diego , Miguel Blanchard , Pedro de Andres Jordi Alvarez y Mikel Raposo a la hora de abordar este nuevo proyecto. Quiero también agradecer desde aquí a mis lectores del blog , followers de twitter y contactos de linkedin las distintas ideas que me han aportado en este primer año  del blog ,ya que he aprendido mucho de todos ellos .El libro tiene la siguiente portada.

Arquitectura Java JPA Domain Driven Design

Arquitectura Java JPA Domain Driven Design

 

Contenido

Como el título  indica  el libro aborda JPA o Java Persistence API  pero a diferencia de otros muchos no intenta convertirse en la Biblia de JPA sino que intenta centrarse en dos cosas .Primero empezar de cero  con JPA e intentar aclarar los conceptos fundamentales.  Segundo y lo mas importante desarrollar un modelo de dominio  y hacerlo evolucionar “paso a paso” .Así el lector  puede ir asumiendo los conceptos a su ritmo. La tabla de contenidos es la siguiente  :

  1. Introducción a JPA
  2. Configuración JPA
  3. Alumno y JPA
  4. Relaciones @ManyToOne y @OneToMany
  5. Java Persistence Query Language
  6. Reglas de negocio
  7. Relaciones @ManyToMany
  8. Revisando @OneToMany
  9. Relaciones Ternarias
  10. Relaciones @OneToOne
  11. Uso de Herencia
  12. Relaciones Unidireccionales
  13. Conclusiones

JPA es quizás una de las tecnologías que mas interesa a los desarrolladores Java pero también es una de las tecnologías que mas dolores de cabeza da cuando queremos comenzar a trabajar con ella.En el libro iremos abordando capítulo a capítulo los distintos tipos de relaciones existentes entre las entidades de negocio , diseñaremos las  posibles reglas de negocio que se pueden implementar en el modelo . Ademas veremos una introducción al lenguaje de consultas JPQL (Java Persistence Query Language) y en definitiva intentaremos solventar las dudas y errores que se suelen cometer cuando uno empieza a trabajar con este standard.

Capitulo gratuito

Para que la gente se pueda hacer una idea del formato de los capítulos dejo uno de forma gratuita para bajar :CapítuloAlumnoJPA

Amazon Kindle y Precio

Siempre es difícil asignar un precio a un contenido de este tipo que es en formato electrónico (130-140 paginas)  he intentado guiarme un poco por los precios habituales de venta y también por el hecho de que sea un contenido accesible para todo tipo de  lectores . El precio final del libro es de 2,99 $ (US) + impuestos de cada país que creo que es algo razonable para las personas que estén interesadas. ¿Donde se puede comprar ? . Bueno a continuación dejo los enlaces a las diferentes web de amazon. El libro esta editado en español.

Código fuente

El código fuente esta disponible para todo el mundo por capítulos : Código Fuente 

It's only fair to share...Share on FacebookShare on Google+Tweet about this on TwitterShare on LinkedIn

About Cecilio Álvarez Caules

Cecilio Álvarez Caules Sun Certified Enterprise Architech (J2EE/JEE).

76 Responses to Libro:Arquitectura Java JPA (Domain Driven Design)

  1. Fernando 6 Octubre, 2015 at 16:03 #

    Estimado Cecilio,

    excelente tu libro, especialmente para un novato como yo.
    Queria hacerte una pregunta , siguiendo paso a paso el libro, me encuentro bastante perdido en como armar un menu ? (no he llegado a la parte que empieza con spring, me resulta muy complejo aun)
    tendria que armar un controlador menu y luego este controlador llamaria a los otros controladores?
    En tu segundo libro, se ve paso a paso como desarrollar esto paso a paso?, donde intereactue un menu
    con distintos controladores de distintas tablas?
    Disculpa si mi pregunta te parece demasiado simple, pero aun ando a los tumbos, por decirlo de alguna manera.

    Saludos!

    • Cecilio Álvarez Caules 7 Octubre, 2015 at 20:51 #

      El menu suele ir en un patrón composite view , es decir esta compartido por todas las páginas y va contra el controlador que quieras que centralizaría un poco esa gestión

  2. augusto 14 Junio, 2015 at 19:21 #

    Hola Cecilio me gustaría saber como puedo llamar un metodo plsql desde JPA y poder tener acceso a la respuesta del procedimiento.

    Saludos:)

  3. hernndo 16 Mayo, 2015 at 19:55 #

    hola cecilio la pregunta es si hay alguna diferencia entre escoger el provedor EclipseLink (JPA 2.1) e Hibernate(JPA 2.1).

    • Cecilio Álvarez Caules 17 Mayo, 2015 at 16:28 #

      Habrá bastante diferencias si sales del Standard y usas anotaciones propietarias pero mientras te mantengas en el no habrá problemas 🙂

  4. hernndo 16 Mayo, 2015 at 19:45 #

    Hola Cecilio en tu libro vi que trabajan con hibernate, me gustaría saber si es lo mismo que trabajar con Toplinks

    • Cecilio Álvarez Caules 17 Mayo, 2015 at 16:27 #

      Si usas JPA si .. salvo la configuración inicial todo debería ser muy parecido en TopLink

  5. augusto 8 Diciembre, 2014 at 6:51 #

    Hola me gustaría comprar el libro pero por paypal puedes implementar este método de pago en tu página

    • Cecilio Álvarez Caules 8 Diciembre, 2014 at 9:27 #

      Tengo algunos temas pendientes en cuanto a los libros que espero solventar en navidades 🙂 . Por ahora le puedes comprar o en amazon o en google play.. le estoy dando una vuelta a la venta por pay pal pero hasta navidades no creo que me ponga en serio.

  6. Julio 17 Octubre, 2014 at 1:20 #

    Porque no tienes tu sitio web (este sitio), elaborado en JAVA

    • Cecilio Álvarez Caules 17 Octubre, 2014 at 7:37 #

      Porque WordPress es mas potente para estas cosas 🙂

  7. Geovanny 8 Septiembre, 2014 at 21:58 #

    Cordial saludo Cecilio felicitarte por lo grandes aporte que quería saber si este libro lo puede uno comprar en formato en PDF, Me gustaría hacerle varias preguntas.
    1)Usted puede publicar un libro donde usted pueda implementar y explicar por medio de un proyecto la capa de presentación, negocio y de datos?

    2) Usted tiene en mente publicar un libro sobre Spring o EJB.

    3) Le envie un correo sobre una consulta espero que cuando tenga tiempo lo pueda revisar

    Espero que la pase bien y felicitarlos por sus libros

    • Cecilio Álvarez Caules 9 Septiembre, 2014 at 7:58 #

      Pues lo de los formatos lo estoy mirando 🙂 . Por ahora no voy a sacar ningún libro de Spring o de EJB … ya que serían libros gigantestos de tamaño. Vuelve a enviarme la consulta igual la he perdido 🙂

  8. Salvador 26 Agosto, 2014 at 19:04 #

    Buen día Cecilio.

    He visitado tu blog y me parece muy interesante tu trabajo.
    En esta oportunidad quiero tomarme el atrevimiento de hacerte una consulta, actualmente estamos evaluando el uso de GlassFish 4 como servidor de aplicaciones en producción. Nuestra empresa cuenta con alrededor de 1000 usuarios y se espera implementar una suite de 22 aplicaciones en línea (actualmente en desarrollo), las cuales serán integradas en una sola aplicación. Utilizaremos para el desarrollo JSF y Primefaces. Quisiera saber tu opinión sobre el rendimiento que tendría GlassFish para este caso en particular ó si me recomiendas otro servidor.

    De antemano, te agradezco mucho la ayuda que das al compartir tus conocimientos y experiencia.

    Saludos.

    • Cecilio Álvarez Caules 27 Agosto, 2014 at 7:03 #

      GlassFish es un servidor que esta muy orientado a implementar los standares. Pero no a ser un servidor de producción ya que el producto de referencia para oracle es WebLogic.Eso no quiere decir que no funcione. Pero si quiere decir que hay que andarse con mucho ojo ya que es probable que a poco que te salgas de lo más común comiencen los problemas. Por otro lado andate con mucho ojo con JSF y su escalabilidad y haz pruebas de carga sobre todo si parte de esos 1000 usuarios son de alta concurrencia.

  9. jose garces 19 Agosto, 2014 at 17:21 #

    Hola cecilio, he comprado tu libro en amazone, por favor tengo una duda con respecto a la herencia. En el siguiente codigo donde se define cual es el campo que determina la gerarquia

    @Inheritance(strategy=InheritanceType.SINGLE_TABLE)
    @DiscriminatorColumn(name=”tipoPago”)

    que se almacena en el campo “tipoPago” que no veo ningun codigo que afecte este campo

    Gracias por tu respuesta

    • Cecilio Álvarez Caules 19 Agosto, 2014 at 18:32 #

      Claro es el discriminador ese campo no existe a nivel de las entidades. Es el campo que sirve para saber cual es la jerarquia. No se si me explico??

  10. German Castellanos 12 Agosto, 2014 at 14:29 #

    Profesor Alvarez, mis respetos y felicitaciones por el excelente primer libro de Arquitectura Java, el cual estoy devorando con avidez. Procederé a comprar de inmediato el segundo libro para continuar el proceso de aprendizaje. Mil gracias por su aporte a la comunidad y un caluroso saludo desde Colombia!

    • Cecilio Álvarez Caules 12 Agosto, 2014 at 14:52 #

      me alegro que te sea util 🙂

  11. Pedro 8 Agosto, 2014 at 11:53 #

    Hola, felicidades por la publicación de tu segundo libro. El primero lo he ojeado solo, me vendría bien que estuviera también en formato kindle 🙂

    Una cosa que te quiero comentar sobre los ejemplos, al ejecutarlos el proceso nunca termina, al menos a mi al lanzarlos desde eclipse con ubuntu. Si lo hace si añado al final emf.close();

    Un saludo,

    • Cecilio Álvarez Caules 8 Agosto, 2014 at 15:03 #

      Gracias por el aporte puede q en algunos falte cerrar

    • Cecilio Álvarez Caules 8 Agosto, 2014 at 15:04 #

      Me apunto la idea de kindle para el futuro

  12. Carlos 31 Julio, 2014 at 0:57 #

    Hola Cecilio.
    Muchas gracias por el link que me brindaste hace unos dias para hacer posible auditar mi aplicación, ademas quisiera molestarte nuevamente con otra duda y el caso es el siguiente: yo tengo que retornar un arraylist con información de diferentes vistas para desplegarla en un reporte y con jpa me he topado con el impase de no poder hacer uso de una vista por no contar con un @Id. Podrías brindarme una recomendación, al final consigo desplegar la información pero tengo que realizar una conexión jdbc aparte y no me siento cómodo utilizando jdbc si ya tengo una conexión con jpa.

    De antemano gracias por tus comentarios y las disculpas del caso si no es el lugar apropiado para la pregunta pero me urge bastante conocer tu valiosa opinión.

    Saludos.

    • Cecilio Álvarez Caules 31 Julio, 2014 at 11:16 #

      Normalmente si tienes datos de varias tablas (relacionadas) envias al cliente los objetos como grafo. Si son datos muy disjuntos entonces necesitas en el servidor obtener los datos y convertirlos a una structura DTO.

  13. Bman 16 Julio, 2014 at 17:42 #

    Yo no se nada al respecto.
    ¿Me sirve para iniciar? 😛

    • Cecilio Álvarez Caules 16 Julio, 2014 at 22:41 #

      si sin problemas empieza desde cero :). Salvo que no sepas java 😉

  14. Carlos 10 Julio, 2014 at 23:00 #

    Cecilio queria consultarte si puedes recomendarme información referente a como generar auditoria de los procesos de persistencia que realiza jpa (crear, modificar, eliminar, etc). He encontrado como realizarlo en hibernate pero necesito hacerlo con JPA. Muchas gracias por tu ayuda.

    Saludos.

  15. Carlos 10 Julio, 2014 at 22:56 #

    Hola perdón por la tardanza, si Cecilio si cuento con acceso al appleStore. seria bueno contar con tu libro ahi estaré pendiente porque me urge adquirirlo estoy trabajando con jpa y necesito documentarme.

    Saludos

    • Cecilio Álvarez Caules 11 Julio, 2014 at 8:06 #

      lo voy a mirar a ver que opciones tengo 🙂

  16. Carlos 9 Julio, 2014 at 5:07 #

    Hola Cecilio, muchas gracias por tus invaluables aportes me han servido mucho y estoy muy interesado en comprar tu libro; sin embargo no aparece disponible para mi país. Podrías decirme si hay otro enlace o forma de obtenerlo.

    Muchas gracias por tu fina atención.

    Saludos

    • Cecilio Álvarez Caules 9 Julio, 2014 at 9:07 #

      Pues estoy valorando ponerlo en alguna otra libreria tipo la de AppleStore o Tipo la de Android .Tienes acceso a ese tipo de librería en tu pais?? . Comentamé gracias 🙂

  17. Jairo 17 Junio, 2014 at 18:22 #

    Hola compre tu libro pero tengo la duda no entiendo como funciona y para que es la siguiente linea:

    alumno.getCursos().add(this);

    Saludos

    • Cecilio Álvarez Caules 17 Junio, 2014 at 20:30 #

      Para que el alumno también tenga añadido el curso y no solo el curso tenga añadido el alumno

  18. Hernán De Antoni 3 Junio, 2014 at 23:09 #

    Hola! Leí tu primer libro y me pareció excelente. En el día de hoy intenté comprar tu nuevo libro desde Amazon pero lamentablemente debido a las restricciones que existen actualmente en mi país (Argentina) respecto a las compras on-line no me lo permite. ¿Existe alguna otra forma de poder comprarlo (por ejemplo, Paypal)?
    Desde ya muchas gracias y felicitaciones por haber generado tan buen material.

    • Cecilio Álvarez Caules 5 Junio, 2014 at 9:50 #

      Lo estoy mirando 🙂 a ver si lo puede vender de alguna otra manera .Pero estas semanas voy a estar algo liado.

  19. yonaides 29 Mayo, 2014 at 16:37 #

    Has pensando en hacer un libro sobre hibernate o JSF 2.2 ?

    • Cecilio Álvarez Caules 29 Mayo, 2014 at 16:51 #

      Por ahora no 🙂 Estoy viendo q tal funciona el de jpa

  20. Jairo 28 Mayo, 2014 at 19:17 #

    Me gustaria consultar lo siguiente sobre el libro: que version y que implementacion? de JPA se utiliza en los ejemplo? y si hay ejemplos con J2EE.
    Gracias.

    • Cecilio Álvarez Caules 28 Mayo, 2014 at 19:27 #

      Los ejemplos están apoyados en JPA 2.0 pero el 85 % del contenido vale también para JPA 1.0 ya que comparten conceptos 🙂 . Eso si recuerda que non válidos para algo tan antiguo que ni siquiera soporte anotaciones @ como puede ser algunos productos de j2ee viejos.

  21. Moises 19 Mayo, 2014 at 23:26 #

    Felicidades por el segundo libro, acabo de enterarme y voy a leerlo recien….

    • Cecilio Álvarez Caules 20 Mayo, 2014 at 10:05 #

      Muchas gracias 🙂

  22. Antonio 15 Mayo, 2014 at 18:08 #

    Buenas y enhorabuena… Que versión de JPA cubre? La última si no me equivoco es la 2.1.

    • Cecilio Álvarez Caules 15 Mayo, 2014 at 19:36 #

      Creo que los ejemplos cubren la 2 🙂 . Estan orientados a diseñar un modelo de classes con las anotaciones y reglas de negocio pertinentes 🙂

  23. carlos 14 Mayo, 2014 at 20:37 #

    Hola, voy a mirar el libro, me gustó el libro anterior. El libro anterior lo subirás a amazon? o solo existirá en PDF?.

    La verdad es que encuentro que haces un excelente trabajo, y a ese pecio voy a ser un cliente frecuente, jejeje.

    Sigue así y mejor!

    Saludos desde Chile.

    • Cecilio Álvarez Caules 14 Mayo, 2014 at 22:49 #

      En amazon siempre ha estado disponible 🙂 . Para la compra en formato papel puedes buscar por arquitectura java y lo veras 🙂 .Este libro es mas pequeñito ya has visto que son 133 paginas kindle . Intenta aclarar los temas de JPA a la gente que siempre tiene muchas dudas.

  24. nelson 14 Mayo, 2014 at 4:24 #

    No he podido leerlo. Hay algun ejemplo o explicacion sobre como mapear herencias y herencias de clases abstractas?

    • Cecilio Álvarez Caules 14 Mayo, 2014 at 7:33 #

      Anda que curioso. Pense que al publicarlo en amazon estaria para todo el mundo , comentame please ? 🙂 .Le daré una vuelta a sacar algún articulo sobre el tema 🙂

      • nelson 14 Mayo, 2014 at 17:40 #

        No he podido leerlo porque no tengo un dispositivo para leerlo, y no me he puesto a buscar algun simulador. Pero, lo preguntaba porque la otra vez haciendo el mapeo de un proyecto, haciendo primero el codigo y despues la base de datos, me encontre con una clase abstracta de la que heredaban dos clases. Entonces entre en debate con mis companieros en la universidad sobre cual seria la forma correcta de mapear dicha herencia (si se puede). No llegamos a un concenso.

        • Cecilio Álvarez Caules 14 Mayo, 2014 at 22:38 #

          Puedes bajarte los ultimos ejercicios del libro son todos gratuitos y la clase “PAgo” podría haberse definido como abstract sin problemas 🙂 . De hecho hubiera sido mejor

        • Cecilio Álvarez Caules 15 Mayo, 2014 at 10:26 #

          con un lector kindle para pc te valdría 🙂 la aplicación se descarga gratuita

  25. Norman 11 Mayo, 2014 at 11:10 #

    Que buena idea la que se te ha ocurrido, estudie cosas de tu primer libro(estoy en este momento recordando) muy bueno, pero la pregunta que se me ha ocurrido hacerte es: Este libro habla sobre Trigger y Procedimientos almacenados? Hoy estoy realizando algo con eso pero no lo implementaré aún ya que estoy en el modelo de dominio y parte de implementación, gracias!

    • Cecilio Álvarez Caules 11 Mayo, 2014 at 12:07 #

      No no cubre esas cosas .Cubre el core de las relaciones ,las reglas de negocio y como modelar de una forma sólida :). Es mas orientado a gente que tiene que construir un módelo que a gente que tiene que consultarle con una Query.

    • Cecilio Álvarez Caules 11 Mayo, 2014 at 12:07 #

      Publicaré mañana algo para que la gente se haga una idea 🙂

      • Norman 12 Mayo, 2014 at 4:29 #

        Genial! pendiente siempre de tus artículos, gracias.

        • Cecilio Álvarez Caules 12 Mayo, 2014 at 8:05 #

          publicado 😉

  26. Nelson Gadea 9 Mayo, 2014 at 16:42 #

    Era justo y necesario, nuestro deber y salvacion Tener un libro asi en español. Ya que casi no se encuentra información muy puntual, sino muy general o específica para los problemas de otros (programadores) en sitios como StackOverflow.

    Muy bueno el precio.

    Espero que sigan con precios como este, especialmente para los que estudiamos :p

    • Cecilio Álvarez Caules 9 Mayo, 2014 at 16:44 #

      gracias 🙂

    • Nelson Gadea 9 Mayo, 2014 at 16:44 #

      Felicidades por su esfuerzo y gracias por su blog.

      • Cecilio Álvarez Caules 10 Mayo, 2014 at 12:11 #

        la verdad es que tienes razon que a veces de JPA solo se encuentra algo en Stackoverflow .A veces yo he intentado encontrar cosas sencillas y no era tan evidente 🙂

  27. Alejandro Daza 8 Mayo, 2014 at 22:14 #

    🙂 felicidades he leído tu anterior libro y a pesar de creer que sé JPA lo menos que podía hacer era comprarlo para retribuir un gran esfuerzo como este y ademas como manera de agradecer tu esfuerzo

    • Cecilio Álvarez Caules 9 Mayo, 2014 at 6:07 #

      Muchas gracias 🙂 . Que tal te ha parecido el nuevo libro?? Te ha aportado algo ? 🙂

      • Alejandro Daza 22 Mayo, 2014 at 15:06 #

        Creo que me lo leí en un día esta bueno para los que apenas están empezando, y también unos detalles que la verdad no conocía, me falta practicar el código pero estas carreras del trabajo no han terminado

        • Cecilio Álvarez Caules 22 Mayo, 2014 at 16:14 #

          Me alegro que te haya gustado el formato 😉

  28. Geovanny 8 Mayo, 2014 at 21:46 #

    Buenas cecilio primero que todo felicitarlo por su nuevo aporte quería saber si en Colombia lo va a vender

    • Cecilio Álvarez Caules 9 Mayo, 2014 at 12:15 #

      esta disponible en amazon.com por ejemplo . No se si podrás comprar alli?

  29. Mintakastar 8 Mayo, 2014 at 17:50 #

    Hola Cecilio,

    Creo que no esta de mas, Felicidades por tu segundo libro!!!

    Sabes siiii…… Si tengo un dispositivo android, y compro el libro, se puede ver con la app de amazon kindle??

    Saludos

    • Cecilio Álvarez Caules 8 Mayo, 2014 at 18:00 #

      Si sin problemas 🙂 yo lo he probado en kindle , en mi tablet android y en un ipad de un amigo y vale para todos . Con tener la aplicación kindle es suficiente 🙂

  30. Carlos 8 Mayo, 2014 at 11:53 #

    Buenos días Cecilio,

    En primer lugar felicidades por tu segundo libro. Por lo que veo en los enlaces Amazon solo esta disponible la version Kindle. ¿Hay manera alguna de descargar (previo pago) la versión PDF? ¿Tienes pensado subir una versión PDF también?

    La verdad que tu primer libro me resulto de gran ayuda y me gustaría leer este segundo.

    Un saludo,

    • Cecilio Álvarez Caules 8 Mayo, 2014 at 11:57 #

      Buenas

      Muchas gracias .Pues no es mi intención subirlo en PDF esa es la verdad . De todas maneras una vez comprado en kindle puedes convertirlo al formato que te apetezca no tiene restricciones . Puedes pasarlo a epub o a pdf a lo que quieras 🙂

      • Joel Romeo 20 Enero, 2015 at 18:45 #

        No sabes lo muy agradecido que estoy por este libro, lo adquiri por google books y me sirvio mucho para entender el manejo de JPA ya que me daba muchos dolores de cabeza y es cierto luego puedes descargarlo en epub o pdf solo que no viene con la imagen de portada del libro el cual no se si me lo podrias enviar por mail es que me gustaria imprimirlo.

        • Cecilio Álvarez Caules 23 Enero, 2015 at 9:30 #

          Te puedes descargar la del propio artículo web en donde esta el libro :)? no se si la resolución es suficiente me dices

Trackbacks/Pingbacks

  1. Utilizando JPA NamedQueries - Arquitectura Java - 1 Marzo, 2015

    […] Otros artículos relacionados: Introducción a JPA , JPA OneToMany, Libro de JPA […]

  2. Arquitectura JPA Domain Driven Design (Google Play) - Arquitectura Java - 10 Septiembre, 2014

    […] unos meses publiqué el libro de Arquitectura Java Domain Driven Design a través de la tienda Kindle de Amazon y poco a poco se ha ido vendiendo. Sin embargo varias […]

  3. Desarrollo Web con Angular.js (nº1 en Amazon programación) - Arquitectura Java - 10 Septiembre, 2014

    […] unos meses publiqué otro libro Arquitectura Java JPA Domain Driven Design y que también se puso numero 1 en la sección de programación en Amazon. Puedo estar contento de […]

Deja un comentario