JPA
¿Que es?
JPA es la propuesta estándar que ofrece Java para implementar un Framework Object Relational Mapping (ORM), que permite interactuar con la base de datos por medio de objetos, de esta forma, JPA es el encargado de convertir los objetos Java en instrucciones para el Manejador de Base de Datos (MDB).
proveedor mas usados son: - Hibernate
- ObjectDB
- TopLink
- EclipseLink
- OpenJPA
es una especificación y no un Framework como tal, ¿pero quiere decir esto exactamente?, pues bien, una especificación no es más que un documento en el cual se plasman las reglas que debe de cumplir cualquier proveedor que dese desarrollar una implementación de JPA, de tal forma que cualquier persona puede tomar la especificación y desarrollar su propia implementación de JPA, ¿Esto quiere decir que pueden existir muchas implementaciones de JPA? la respuesta es sí.
¿Para Que Sirve?
Transacciones
Resource Local
• Indicar explícitamente la transaccionalidad mediante programación.
• EntityTransaction ! begin, commit, rollback
JTA container
• Usa técnicas de transaccionalidad del contenedor (p.e. transaccionalidad del
contenedor EJB ‘required’)
tipos de transaccionalidad
Normalmente se crean, actualizan y borran dentro de una transacción, y se requiere una transacción para que los cambios se actualicen (commit) en la base de datos
Persistencia
Esto quiere decir que su estado puede volcarse un almacén de datos y que puede ser consultado con posterioridad. Una entidad, sin embargo, es persistente porque puede guardarse en un almacén persistente. La diferencia es que no se hace persistente automáticamente, sino que debemos invocar a algún método del API para iniciar el proceso.
es una clase de Java ligera, cuyo estado es persistido de manera asociada a una tabla en una base de datos relacional. Las instancias de estas entidades corresponden a un registro de una tabla.
Entidades de Persistencia
Tipos de acceso
El tipo de acceso que usará una entidad está definido por el lugar donde situemos sus anotaciones de mapeo. JPA permite definir dos tipos de acceso:
• Acceso a variable (Field access)
• Si las anotaciones están en los atributos
• Acceso a propiedad (Property access)
• Si las anotaciones de mapeo están en los métodos getter
Tipos insertables
son objetos que no tienen
identidad, por lo que para ser persistidos deben ser primero
insertados dentro de una entidad
Identidad
La identidad persistente, definida por el identificador (id) de la entidad, es la clave única que identifica a un instancia entidad y la diferencia de otras instancias del mismo tipo de entidad.
también
Una entidad tiene una identidad persistente cuando existe una representación de ella en el almacén de datos, esto es, una fila en una tabla de una base de datos. Si no está en la base de datos, entonces incluso aunque en memoria tenga su campo identidad definido, no tienen una identidad persistente.