JavaEE - EntityManager
Concepto
-
Interfaz
proporciona conjuntométodos
para gestionarentidades
-
Las
entidades
sonobjetos
representantablas
de unabase de datos
- Se utilizan en el contexto de la
persistencia
deObjetos Orientados a Relaciones
→(ORM)
- Se utilizan en el contexto de la
-
Es una de las principales
interfaces
de laAPI
dePersistencia de Java
(JPA
)-
JPA
para lapersistencia
deobjetos
enJava
se utiliza-
Mapear/rastrear
objetos atablas
debases de datos
-
Para gestionar la
persistencia
de estosobjetos
-
-
-
Se utiliza para realizar
operaciones
depersistencia
en unabase de datos
-
Crear
,actualizar
,eliminar
yrecuperar
entidades -
Ejecutar consultas
yobtener resultados
en forma de listas deentidades
ovalores escalares
-
-
Interface
se implementa con unaclase
de proveedor depersistencia
- Ejemplo :
Hibernate
oEclipseLink
- Ejemplo :
-
Implementación de
EntityManager
medianteHibernate: org.hibernate.jpa.HibernateEntityManager
utilizando laclase Persistence
Ejemplo
-
Se utiliza el
método createEntityManagerFactory
de laclase Persistence
para obtener una instancia deEntityManagerFactory
-
Se invoca el
método createEntityManager
deEntityManagerFactory
para obtener una instancia deEntityManager
-
La cadena
"mi_configuracion"
es el nombre delpersistence unit
que se define en elarchivo persistence.xml
EntityManagerFactory emf = Persistence.createEntityManagerFactory("mi_configuracion.xml");
EntityManager em = emf.createEntityManager();
-
Esta
clase
proporciona la implementación concreta de losmétodos
deEntityManager
-
Se encarga de realizar las
operaciones
depersistencia
Uso
-
Para utilizar
EntityManager
necesario incluir la dependencia deJPA
en el proyecto-
Crear una
clase
deconfiguración
que especifique la implementación deJPA
que se va a utilizarHibernate
-
Se crea una
entidad
que es unaclase
que representa a unatabla
de labase de datos
-
Se anota con el fin de
mapearla
a unatabla
de labase de datos
-
-
Ejemplo Mapeo Clase
@Entity
@Table(name = "customers")
public class Customer {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String name;
private String email;
// constructores, getters y setters omitidos por brevedad
}
-
Creada la
entidad
se puede utilizarEntityManager
para realizar operaciones depersistencia
- Necesario obtener una instancia de
EntityManager
a través de unEntityManagerFactory
- Necesario obtener una instancia de
Ejemplo de EntityManagerFactory
EntityManagerFactory emf = Persistence.createEntityManagerFactory("myPersistenceUnit");
EntityManager em = emf.createEntityManager();
-
Con la
instancia
deEntityManager
se pueden realizaroperaciones
depersistencia
-
Para crear una
entidad
ypersistirla
en labase de datos
Customer customer = new Customer("John Smith", "john@example.com");
em.getTransaction().begin();
em.persist(customer);
em.getTransaction().commit();
- Para
actualizar
unaentidad
existente
em.getTransaction().begin();
customer.setName("John Doe");
em.merge(customer);
em.getTransaction().commit();
- Para
eliminar
unaentidad
em.getTransaction().begin();
em.remove(customer);
em.getTransaction().commit();
- Para
recuperar
unaentidad
a partir de suclave primaria
Customer customer = em.find(Customer.class, 1L);
- Para
ejecutar
unaconsulta
y obtener una lista deentidades
TypedQuery<Customer> query = em.createQuery("SELECT c FROM Customer c WHERE c.email = :email", Customer.class);
query.setParameter("email", "john@example.com");
List<Customer> customers = query.getResultList();
Resumen
-
Interfaz
paraJPA
que se utiliza para gestionar lapersistencia
deentidades
en Java -
Realizar operaciones de persistencia en una base de datos
Deja un comentario