Consultas y Operaciones CRUD con JPA y EntityManager
Clase 21 de 22 • Curso de Java SE: SQL y Bases de Datos
Resumen
El EntityManagerFactory es una clase importante en el contexto de Java Persistence API (JPA), que es una especificación para mapear objetos Java a una base de datos relacional. EntityManagerFactory es responsable de crear instancias de EntityManager, el cual se utiliza para interactuar con la base de datos en JPA. EntityManagerFactory configura la conexión a la base de datos y EntityManager representa una “unidad de trabajo”, realiza las operaciones de persistencia, como insertar, actualizar y eliminar datos.
Cuando trabajas con JPA, generalmente configuras un archivo de persistencia (como el persistence.xml) que contiene información sobre cómo establecer la conexión con la base de datos y cómo se deben gestionar las entidades. El archivo “persistent” es un archivo de metadatos y debe estar ubicado en el directorio “META-INF” en la estructura del archivo de la aplicación Java. “META-INF” es una convención utilizada en Java para almacenar metadatos y recursos específicos de la aplicación.
La Java Persistence API (JPA) proporciona una serie de métodos y funcionalidades para interactuar con bases de datos relacionales. Algunos de los métodos más comunes que ofrece JPA son los siguientes:
persist(Object entity)
: Permite guardar una nueva entidad en la base de datos.merge(Object entity)
: Permite actualizar entidades existentes en la base de datos.remove(Object entity)
: Permite eliminar una entidad de la base de datos.createQuery(String qlString)
: Permite realizar consultas JPQL (Java Persistence Query Language).find(Class<T> entityClass, Object primaryKey)
: Permite obtener una entidad por su clave primaria.findAll(Class<T> entityClass)
: Permite obtener todas las entidades de una determinada clase.begin()
ycommit()
: Permiten administrar transacciones.
Estos son solo algunos ejemplos de los métodos que proporciona JPA. La API también incluye funciones para manejar consultas complejas, realizar operaciones transaccionales avanzadas, administrar el ciclo de vida de las entidades y realizar mapeos de relaciones entre objetos Java y tablas de la base de datos.