Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprende Trabajando con ORM: JPA y Hibernate | Trabajando con Bases de Datos
Spring Boot Backend

bookTrabajando con ORM: JPA y Hibernate

Como ya se ha mencionado, el mapeo objeto-relacional (ORM) es una tecnología que permite a los desarrolladores interactuar con una base de datos a nivel de objeto en lugar de mediante consultas SQL.

En esencia, ORM es un concepto que permite que un objeto Java sea representado como datos en una base de datos (y viceversa). Se implementa en forma de la especificación Java Persistence API (JPA).

JPA

Ejemplo de la vida real

Imagina que JPA es como un estándar para los enchufes eléctricos en diferentes países. Este estándar define cómo debe ser un enchufe y qué especificaciones debe cumplir para que los dispositivos puedan conectarse a él.

Sin embargo, el estándar en sí mismo no fabrica los enchufes. Para poder utilizarlos realmente, necesitas fabricantes que implementen este estándar. Ellos crean los enchufes reales que cumplen con dicho estándar.

Componentes principales de JPA

Componentes de JPA son elementos clave que trabajan en conjunto para proporcionar funcionalidad al interactuar con una base de datos.

Exploraremos estos componentes mediante ejemplos de la vida real para ayudarte a asociarlos mejor para uso futuro.

Entidad

Recordemos qué es una entidad. Una entidad es una clase en tu código que representa una tabla en la base de datos. Por ejemplo, la clase User describe qué datos relacionados con el usuario almacenamos.

Imagínalo como una tarjeta de presentación. La tarjeta contiene el nombre de una persona, su título profesional y datos de contacto. En JPA, una clase de entidad describe todas las características importantes de un objeto, así como una tarjeta de presentación describe a una persona.

EntityManager

En JPA, el EntityManager realiza operaciones como agregar, actualizar o eliminar registros, gestionando todas estas acciones.

EntityManager es responsable de gestionar el ciclo de vida de las entidades (objetos) y su interacción con la base de datos.

Métodos principales

Cómo utilizar EntityManager en Spring Boot

Contexto de Persistencia

Ciclo de vida de las Entidades

  • Transitorio: La entidad acaba de ser creada pero aún no ha sido guardada en la base de datos;
  • Gestionado: La entidad ha sido guardada en la base de datos y está siendo gestionada por el EntityManager. Todos los cambios en ella son rastreables automáticamente;
  • Separado: La entidad fue gestionada previamente, pero el contexto de persistencia ha sido cerrado o el EntityManager ha sido limpiado. Los cambios en este estado no se rastrean automáticamente;
  • Eliminado: La entidad ha sido marcada para eliminación de la base de datos.

Cuando el EntityManager crea o encuentra una entidad, coloca esa entidad en el contexto de persistencia.

Todos los cambios realizados en la entidad gestionada se rastrean automáticamente y, al finalizar la transacción, estos cambios se sincronizan con la base de datos.

JPQL (Java Persistence Query Language)

En JPQL, se escriben consultas para buscar o modificar datos en la base de datos utilizando un estilo orientado a objetos.

SELECT c from Category c WHERE c.title = 'query'

En JPQL, no se trabaja directamente con los nombres de tablas y columnas. En su lugar, se hace referencia a la clase Category y a su campo title, lo que hace que la consulta sea más comprensible para los desarrolladores de Java. JPQL abstrae la estructura subyacente de la base de datos, permitiendo centrarse en el modelo orientado a objetos.

Hibernate

Por ejemplo, Hibernate puede generar y actualizar automáticamente las tablas de la base de datos a partir de tus entidades (clases).

Hibernate incorpora mecanismos de caché que permiten que los datos utilizados con frecuencia se almacenen en memoria, reduciendo el número de solicitudes a la base de datos y acelerando el rendimiento de la aplicación.

1. ¿Qué es JPA?

2. ¿Qué interfaz en JPA se utiliza para realizar operaciones sobre entidades?

question mark

¿Qué es JPA?

Select the correct answer

question mark

¿Qué interfaz en JPA se utiliza para realizar operaciones sobre entidades?

Select the correct answer

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 4. Capítulo 4

Pregunte a AI

expand

Pregunte a AI

ChatGPT

Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla

Suggested prompts:

What are the main differences between JPA and Hibernate?

Can you explain more about how the EntityManager works?

How does JPQL differ from regular SQL?

Awesome!

Completion rate improved to 3.45

bookTrabajando con ORM: JPA y Hibernate

Desliza para mostrar el menú

Como ya se ha mencionado, el mapeo objeto-relacional (ORM) es una tecnología que permite a los desarrolladores interactuar con una base de datos a nivel de objeto en lugar de mediante consultas SQL.

En esencia, ORM es un concepto que permite que un objeto Java sea representado como datos en una base de datos (y viceversa). Se implementa en forma de la especificación Java Persistence API (JPA).

JPA

Ejemplo de la vida real

Imagina que JPA es como un estándar para los enchufes eléctricos en diferentes países. Este estándar define cómo debe ser un enchufe y qué especificaciones debe cumplir para que los dispositivos puedan conectarse a él.

Sin embargo, el estándar en sí mismo no fabrica los enchufes. Para poder utilizarlos realmente, necesitas fabricantes que implementen este estándar. Ellos crean los enchufes reales que cumplen con dicho estándar.

Componentes principales de JPA

Componentes de JPA son elementos clave que trabajan en conjunto para proporcionar funcionalidad al interactuar con una base de datos.

Exploraremos estos componentes mediante ejemplos de la vida real para ayudarte a asociarlos mejor para uso futuro.

Entidad

Recordemos qué es una entidad. Una entidad es una clase en tu código que representa una tabla en la base de datos. Por ejemplo, la clase User describe qué datos relacionados con el usuario almacenamos.

Imagínalo como una tarjeta de presentación. La tarjeta contiene el nombre de una persona, su título profesional y datos de contacto. En JPA, una clase de entidad describe todas las características importantes de un objeto, así como una tarjeta de presentación describe a una persona.

EntityManager

En JPA, el EntityManager realiza operaciones como agregar, actualizar o eliminar registros, gestionando todas estas acciones.

EntityManager es responsable de gestionar el ciclo de vida de las entidades (objetos) y su interacción con la base de datos.

Métodos principales

Cómo utilizar EntityManager en Spring Boot

Contexto de Persistencia

Ciclo de vida de las Entidades

  • Transitorio: La entidad acaba de ser creada pero aún no ha sido guardada en la base de datos;
  • Gestionado: La entidad ha sido guardada en la base de datos y está siendo gestionada por el EntityManager. Todos los cambios en ella son rastreables automáticamente;
  • Separado: La entidad fue gestionada previamente, pero el contexto de persistencia ha sido cerrado o el EntityManager ha sido limpiado. Los cambios en este estado no se rastrean automáticamente;
  • Eliminado: La entidad ha sido marcada para eliminación de la base de datos.

Cuando el EntityManager crea o encuentra una entidad, coloca esa entidad en el contexto de persistencia.

Todos los cambios realizados en la entidad gestionada se rastrean automáticamente y, al finalizar la transacción, estos cambios se sincronizan con la base de datos.

JPQL (Java Persistence Query Language)

En JPQL, se escriben consultas para buscar o modificar datos en la base de datos utilizando un estilo orientado a objetos.

SELECT c from Category c WHERE c.title = 'query'

En JPQL, no se trabaja directamente con los nombres de tablas y columnas. En su lugar, se hace referencia a la clase Category y a su campo title, lo que hace que la consulta sea más comprensible para los desarrolladores de Java. JPQL abstrae la estructura subyacente de la base de datos, permitiendo centrarse en el modelo orientado a objetos.

Hibernate

Por ejemplo, Hibernate puede generar y actualizar automáticamente las tablas de la base de datos a partir de tus entidades (clases).

Hibernate incorpora mecanismos de caché que permiten que los datos utilizados con frecuencia se almacenen en memoria, reduciendo el número de solicitudes a la base de datos y acelerando el rendimiento de la aplicación.

1. ¿Qué es JPA?

2. ¿Qué interfaz en JPA se utiliza para realizar operaciones sobre entidades?

question mark

¿Qué es JPA?

Select the correct answer

question mark

¿Qué interfaz en JPA se utiliza para realizar operaciones sobre entidades?

Select the correct answer

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 4. Capítulo 4
some-alt