Bienvenida

Como todo en la vida, la innovación es la clave del éxito por lo que nos hemos visto en la necesidad de "evolucionar" este blog para abarcar muchos otros temas que estaban quedando de lado en nuestros cursos "oficiales".

Si deseas aprender o profundizar algunos temas en particular, no dudes en contactarnos.


miércoles, 16 de noviembre de 2011

JPA: Caso Completo de RelationsShips

Aqui presentamos un caso que comprende todo el tema de relationships en JPA.

El caso es bastante sencillo:
- Hay una entidad propietario que se implementa con una herencia simple ( persona natural y persona juridica ) y que además posee una clase embebida ( direccion).
- Existe una entidad Auto que puede tener servicios relacionados ( mantenimientos ).
Además, cada mantenimiento puede tener varios repuestos utilizados.

El modelo de Objetos y las relaciones es el siguiente:

El proyecto Java ( es un proyecto Java Stand Alone ) lo puedes descargar de aquí. Acuerdate de colocar las librerías para EclipseLink, Hibernate u OpenJPA y del conector de MySQL. EL persistence XML está preparado para funcionar con 3 unidades de persistencia apuntando a una base de datos que debes crear vacía ( con nombre "manytomany" ) .

Luego de ejecutar los programas de Insert, los SQL directos a la base de datos te deben mostrar:



Ejemplos JP-QL: Ahora veremos como navegar entre las relaciones de las entidades. Asegúrate de ver bien los atributos que tiene cada entidad.

Ejemplo 1: Todos los propietarios que tiene automovil
Ejemplo 2: Todos los propietarios que tiene automovil  con los servicios ejecutados


Ejemplo 3: El costo total del servicio por auto ( sin considerar repuestos )


Ejemplo 4:El costo total de repuestos por auto


Hasta la próxima.
No te olvides de dejar un comentario.


domingo, 6 de noviembre de 2011

Configurando el persistence.xml en JPA

Y la pregunta de rigor sería  ¿ Qué contiene el archivo persistence.xml ?
La respuesta es bastante sencilla, contiene las "persistence unit" o Unidades de Persistencia que a su vez, indican con que implementación JPA se trabaja, cuales son las entidades, el tipo de conexión a la base de datos y otros parametros propios de la implementación JPA.



Paso 1: Crear las Entidades Java, lo cual se puede realizar vía programación del código o por Ingeniería reversa desde la Base de Datos.

Paso 2: Configurar el archivo “persistence.xml” que se ubica en el proyecto dentro del folder META-INF.


Luego de crear la Entidad Java, nótese que se marca un error en la clase. Observando el error dentro de la clase Java indica que Class "com.ejemplo.jpa.Person" is mapped, but is not included in any persistence unit.

Esto se debe a que falta configurar el archivo persistence.xml.

Paso 3: Definir la unidad de persistencia. En este caso se llama “DemoJPA

Paso 4: Registrar el provider (implementación de JPA ) que Eclipse lo realiza por defecto:


Paso 5: Registrar las entidades

Se debe registrar una línea por cada entidad del proyecto.

Paso 6: Registrar las propiedades de conexión a la Base de datos:


En JPA 2.0 estas propiedades de conexión a la base de datos son estándares y comienzan con "javax.persistence".

Recordar cerrar el tag “<properties>”.

NOTA: Se definen las propiedades de conexión a la base de datos debido a que estamos empleando Java SE con conexión directa (en el paso 3 se observa que dice “RESOURCE_LOCAL”).  En caso de utilizar DataSource no sería necesario esto (el parámetro del paso 3 sería “JTA”).


¿ Qué pasa si quiero usar otra implementación de JPA ? ... en el siguiente post explicaremos esto.

¿ que te pareció ?. No te olvides de dejar un comentario.