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.
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 :
- Introducción a JPA
- Configuración JPA
- Alumno y JPA
- Relaciones @ManyToOne y @OneToMany
- Java Persistence Query Language
- Reglas de negocio
- Relaciones @ManyToMany
- Revisando @OneToMany
- Relaciones Ternarias
- Relaciones @OneToOne
- Uso de Herencia
- Relaciones Unidireccionales
- 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.
- Amazon España : Arquitectura Java JPA Domain Driven Design
- Amazon. Mexico :Arquitectura Java JPA Domain Driven Design
- Amazon USA :Arquitectura Java JPA Domain Driven Design
- Amazon UK : Arquitectura Java JPA Domain Driven Design
- Amazon Francia :Arquitectura Java JPA Domain Driven Design
- Amazon Brasil : Arquitectura Java JPA Domain Driven Design
- Amazon Alemania : Arquitectura Java JPA Domain Driven Design
- Amazon Italia : Arquitectura Java JPA Domain Driven Design
- Amazon Canada: Arquitectura Java JPA Domain Driven Design
Código fuente
El código fuente esta disponible para todo el mundo por capítulos : Código Fuente
Hola Cecilio, muchas gracias por compartir su conocimiento, en lo personal me ha ayudado mucho, desde que descubri el libro arquitectura Java Solida me dije “este man es de orden” jejejeje y me compre los otros libros Admiro mucho el interes por la utilizacion de patrones de diseño y principios de ingenieria, quiero consultarle algo relacionado con la organizacion del codigo fuente en java. En Angularjs tenemos la guia de estilo de Jhon Papa, donde recomiena crear carpetas para colocar los archivos por modulo o funcionalidad y no por tipo, es decir no esta recomendado hacer una carpeta para todos… Read more »
No , yo no te lo recomendaría de entrada . Esto es porque muchas veces los packages de Java se reutilizan . Es decir me copio todos los business objects en un jar por ejemplo . o la capa de repositotios etc. Si optas por un diseño como el de Angular no será posible hacer eso salvo que estés un una arquitectura muy propia de microservicios cada bussiness object estará en una carpeta diferente. Otra opción es que en un package tipo business objects hagas subdivisiones . Eso si sería posible.
Gracias por la respuesta Cecilio, es bueno saber el punto de vista de un arquitecto Java
Exitos¡¡
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… Read more »
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
Hola Cecilio me gustaría saber como puedo llamar un metodo plsql desde JPA y poder tener acceso a la respuesta del procedimiento.
Saludos:)
necesitarias realizar un call desde una query nativa (native query) o a partir de jpa 2.1 están soportados http://stackoverflow.com/questions/3572626/calling-stored-procedure-from-java-jpa
hola cecilio la pregunta es si hay alguna diferencia entre escoger el provedor EclipseLink (JPA 2.1) e Hibernate(JPA 2.1).
Habrá bastante diferencias si sales del Standard y usas anotaciones propietarias pero mientras te mantengas en el no habrá problemas 🙂
Hola Cecilio en tu libro vi que trabajan con hibernate, me gustaría saber si es lo mismo que trabajar con Toplinks
Si usas JPA si .. salvo la configuración inicial todo debería ser muy parecido en TopLink
[…] Otros artículos relacionados: Introducción a JPA , JPA OneToMany, Libro de JPA […]
Hola me gustaría comprar el libro pero por paypal puedes implementar este método de pago en tu página
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.
Porque no tienes tu sitio web (este sitio), elaborado en JAVA
Porque WordPress es mas potente para estas cosas 🙂
[…] 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 […]
[…] 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 […]
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
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 🙂
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… Read more »
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.
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
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??
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!
me alegro que te sea util 🙂
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,
Gracias por el aporte puede q en algunos falte cerrar
Me apunto la idea de kindle para el futuro
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… Read more »
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.
Yo no se nada al respecto.
¿Me sirve para iniciar? 😛
si sin problemas empieza desde cero :). Salvo que no sepas java 😉
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.
http://www.objectdb.com/java/jpa/persistence/event esta es una opción
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
lo voy a mirar a ver que opciones tengo 🙂
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
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 🙂
Hola compre tu libro pero tengo la duda no entiendo como funciona y para que es la siguiente linea:
alumno.getCursos().add(this);
Saludos
Para que el alumno también tenga añadido el curso y no solo el curso tenga añadido el alumno
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.
Lo estoy mirando 🙂 a ver si lo puede vender de alguna otra manera .Pero estas semanas voy a estar algo liado.
Has pensando en hacer un libro sobre hibernate o JSF 2.2 ?
Por ahora no 🙂 Estoy viendo q tal funciona el de jpa
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.
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.
Felicidades por el segundo libro, acabo de enterarme y voy a leerlo recien….
Muchas gracias 🙂
Buenas y enhorabuena… Que versión de JPA cubre? La última si no me equivoco es la 2.1.
Creo que los ejemplos cubren la 2 🙂 . Estan orientados a diseñar un modelo de classes con las anotaciones y reglas de negocio pertinentes 🙂
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.
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.
No he podido leerlo. Hay algun ejemplo o explicacion sobre como mapear herencias y herencias de clases abstractas?
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 🙂
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.
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
con un lector kindle para pc te valdría 🙂 la aplicación se descarga gratuita
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!
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.
Publicaré mañana algo para que la gente se haga una idea 🙂
Genial! pendiente siempre de tus artículos, gracias.
publicado 😉
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
gracias 🙂
Felicidades por su esfuerzo y gracias por su blog.
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 🙂
🙂 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
Muchas gracias 🙂 . Que tal te ha parecido el nuevo libro?? Te ha aportado algo ? 🙂
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
Me alegro que te haya gustado el formato 😉
Buenas cecilio primero que todo felicitarlo por su nuevo aporte quería saber si en Colombia lo va a vender
esta disponible en amazon.com por ejemplo . No se si podrás comprar alli?
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
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 🙂
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,
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 🙂
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.
Te puedes descargar la del propio artículo web en donde esta el libro :)? no se si la resolución es suficiente me dices