JavaEE - EntityManager
Concepto
-
Interfazproporciona conjuntométodospara gestionarentidades -
Las
entidadessonobjetosrepresentantablasde unabase de datos- Se utilizan en el contexto de la
persistenciadeObjetos Orientados a Relaciones→(ORM)
- Se utilizan en el contexto de la
-
Es una de las principales
interfacesde laAPIdePersistencia de Java(JPA)-
JPApara lapersistenciadeobjetosenJavase utiliza-
Mapear/rastrearobjetos atablasdebases de datos -
Para gestionar la
persistenciade estosobjetos
-
-
-
Se utiliza para realizar
operacionesdepersistenciaen unabase de datos-
Crear,actualizar,eliminaryrecuperarentidades -
Ejecutar consultasyobtener resultadosen forma de listas deentidadesovalores escalares
-
-
Interfacese implementa con unaclasede proveedor depersistencia- Ejemplo :
HibernateoEclipseLink
- Ejemplo :
-
Implementación de
EntityManagermedianteHibernate: org.hibernate.jpa.HibernateEntityManagerutilizando laclase Persistence
Ejemplo
-
Se utiliza el
método createEntityManagerFactoryde laclase Persistencepara obtener una instancia deEntityManagerFactory -
Se invoca el
método createEntityManagerdeEntityManagerFactorypara obtener una instancia deEntityManager -
La cadena
"mi_configuracion"es el nombre delpersistence unitque se define en elarchivo persistence.xml
EntityManagerFactory emf = Persistence.createEntityManagerFactory("mi_configuracion.xml");
EntityManager em = emf.createEntityManager();
-
Esta
claseproporciona la implementación concreta de losmétodosdeEntityManager -
Se encarga de realizar las
operacionesdepersistencia
Uso
-
Para utilizar
EntityManagernecesario incluir la dependencia deJPAen el proyecto-
Crear una
clasedeconfiguraciónque especifique la implementación deJPAque se va a utilizarHibernate-
Se crea una
entidadque es unaclaseque representa a unatablade labase de datos -
Se anota con el fin de
mapearlaa unatablade 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
entidadse puede utilizarEntityManagerpara realizar operaciones depersistencia- Necesario obtener una instancia de
EntityManagera través de unEntityManagerFactory
- Necesario obtener una instancia de
Ejemplo de EntityManagerFactory
EntityManagerFactory emf = Persistence.createEntityManagerFactory("myPersistenceUnit");
EntityManager em = emf.createEntityManager();
-
Con la
instanciadeEntityManagerse pueden realizaroperacionesdepersistencia -
Para crear una
entidadypersistirlaen labase de datos
Customer customer = new Customer("John Smith", "john@example.com");
em.getTransaction().begin();
em.persist(customer);
em.getTransaction().commit();
- Para
actualizarunaentidadexistente
em.getTransaction().begin();
customer.setName("John Doe");
em.merge(customer);
em.getTransaction().commit();
- Para
eliminarunaentidad
em.getTransaction().begin();
em.remove(customer);
em.getTransaction().commit();
- Para
recuperarunaentidada partir de suclave primaria
Customer customer = em.find(Customer.class, 1L);
- Para
ejecutarunaconsultay 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
-
InterfazparaJPAque se utiliza para gestionar lapersistenciadeentidadesen Java -
Realizar operaciones de persistencia en una base de datos
Deja un comentario