Relaciones JPA: Categorías, Productos, Compras y Clientes
Clase 15 de 35 • Curso de Java Spring
Contenido del curso
- 10

Conceptos básicos de JPA y anotaciones en Java
03:04 - 11

Gestión de Bases de Datos con Spring Data JPA en Java
05:24 - 12

Conexión y Configuración de Base de Datos en Spring Boot
12:09 - 13

Mapeo de Tablas a Clases con JPA: Creación de Entities en Java
14:00 - 14

Creación de Entities con Clave Primaria Compuesta en JPA
06:49 - 15

Relaciones JPA: Categorías, Productos, Compras y Clientes
10:37 - 16

Repositorios de Spring Data: Gestión Eficiente de Bases de Datos
07:54 - 17

Consultas avanzadas con Query Methods en Spring Data
09:30
- 18

Clase de Repositorio de Productos con Spring Framework
05:19 - 19

Patrón DataMapper en Proyectos Java: Implementación y Beneficios
13:37 - 20

Creación de Mapeadores con MapStruct en Java
11:22 - 21

Repositorio de Productos Orientado al Dominio en Java
09:27 - 22

Inyección de Dependencias en Spring Framework
04:34 - 23

Implementación de Servicios de Dominio en Java con Spring Framework
09:12 - 24

Creación de Controlador REST en Spring Boot
07:14 - 25

Anotaciones Spring para Exponer APIs RESTful
09:25
- 26

Control de Respuestas HTTP con ResponseEntity en Spring
09:11 - 27

Modelado de Dominio para Gestión de Compras en Supermercados
05:27 - 28

Mapeadores en Java para Conversión de Compras y Productos
10:45 - 29

Implementación de Repositorio en Java para Compras en Supermercado
09:01 - 30

Pruebas de API de Compras con Postman
02:56 - 31

Documentación de APIs con Swagger en Spring Boot
12:55
¿Cómo establecer relaciones en JPA?
El establecer relaciones adecuadas en nuestra aplicación no solo es buena práctica, sino que es esencial para la funcionalidad y eficiencia de cualquier proyecto. Hoy exploraremos cómo se pueden crear relaciones en un modelo de datos usando anotaciones de JPA, que ayudarán a mantener la integridad de nuestros datos, mejorar el rendimiento de la aplicación y hacer el código más legible y mantenible.
¿Cuál es la relación entre categorías y productos?
En nuestro modelo de datos, una categoría puede tener muchos productos. Esto en JPA se traduce de la siguiente forma:
- Clase Producto:
- Se añade un atributo privado de tipo
Categoría. - Se utilizan dos anotaciones:
@ManyToOney@JoinColumn.
- Se añade un atributo privado de tipo
private Categoria categoria;
@ManyToOne
@JoinColumn(name = "ID_CATEGORIA", insertable = false, updatable = false)
- Clase Categoría:
- Se agrega un atributo privado
List<Producto> productos. - Se aplica la anotación
@OneToManycon el parámetromappedBy.
- Se agrega un atributo privado
private List<Producto> productos;
@OneToMany(mappedBy = "categoria")
¿Cómo definir la relación entre clientes y compras?
El siguiente paso es definir cómo un cliente puede tener múltiples compras:
- Clase Compra:
- Añadimos un atributo privado de tipo
Cliente. - Adicionamos las anotaciones
@ManyToOney@JoinColumn.
- Añadimos un atributo privado de tipo
private Cliente cliente;
@ManyToOne
@JoinColumn(name = "ID_CLIENTE", insertable = false, updatable = false)
- Clase Cliente:
- Crea una lista de tipo
Compra. - Utiliza la anotación
@OneToManyconmappedBy.
- Crea una lista de tipo
private List<Compra> compras;
@OneToMany(mappedBy = "cliente")
¿Cómo se mapean las relaciones entre compras y productos?
Esta es una relación esencial donde cada compra puede incluir varios productos:
- Clase ComprasProductos:
- Definimos dos atributos:
ComprayProductocon anotaciones@ManyToOne.
- Definimos dos atributos:
private Compra compra;
private Producto producto;
@ManyToOne
@JoinColumn(name = "ID_COMPRA", insertable = false, updatable = false)
@ManyToOne
@JoinColumn(name = "ID_PRODUCTO", insertable = false, updatable = false)
- Clase Compra:
- Añade un atributo
List<ComprasProductos> productoscon la anotación@OneToMany.
- Añade un atributo
private List<ComprasProductos> productos;
@OneToMany(mappedBy = "compra")
Este enfoque de creación de relaciones no solo mantiene la integridad de datos, sino que permite sacar el máximo provecho de Java y de sus herramientas modernas. Siempre es clave mapear las relaciones necesarias, ayudando a la optimización del desempeño de la aplicación sin agregar complejidades innecesarias.
Con el modelo de datos correctamente mapeado, nuestro próximo paso será interactuar con la base de datos utilizando los repositorios de Spring Data. Este es un camino emocionante hacia una aplicación más robusta y eficiente. ¡Te alentamos a seguir aprendiendo y explorando!