No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Curso de Java Spring

Curso de Java Spring

Alejandro Ramírez

Alejandro Ramírez

Mapear relaciones entre clases

15/35
Recursos

Aportes 34

Preguntas 21

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Esta parte del codigo de la clase Compra esta mal ya que en mappedBy deberia haber “compra”

@OneToMany(mappedBy = “producto”)
private List<ComprasProducto> productos;

me tome la molestia de ir al ultimo video y ver si ya lo habia corregido en los archivos adjuntos y efectivamente luego lo corregira, lo expongo mas que nada para que nadie se sienta frustrado de no entender algo que en realidad esta mal.

asi esta bien:

@OneToMany(mappedBy = “compra”)
private List<ComprasProducto> productos;

En el diagrama de la base de datos la relación que se ve entre las tablas COMPRAS y COMPRAS_PRODUCTOS es de UNO a UNO; sin embargo, en el momento de hacer la relación en código se realiza como UNO a MUCHOS, mostrando posiblemente un error en la relación en el diagrama.

Lo comento por si a alguien le quedó la duda. 😁

A lo entendí
Cuando una tabla tiene un foreign key se usa JoinColumn y en la tabla de donde se origina ese foreign key se usa dentro de la relacion el mappedBy con el nombre del atributo de la clase donde se uso el JoinColumn.

Definitivamente un profesor excelente.

En la última relación @OneToMany debería ir “compra” en el mappedBy, y no “producto”, ya que se está asociando Compra con ComprasProducto, indicando que una compra puede tener muchos productos.

min. 5:10 quiso decir “Un cliente pertenece a muchas compras”

Es una cosa hermosa, creo que esto simplifica mucho lo que yo conocía hace 10 años =P

Excelente clases , me gusta spring boot y estas clases se dejan entender muy bien.

Y como seria cuando la relacion es 1 a 1?? tengo que poner anotaciones en ambas clases??

No olviden poner los metodos GET y SET de las nuevas variables creadas.

Chicos, algo que se le pasó al profesor fue crear los Setters y Getters de esos nuevos atributos con los que se crea la relación entre entidades, deben agregarlos para que en clases posteriores no tengan problemas, ya que de no hacerlo en la clase 27 cuando quieran probar la API saldrá un error en unknow justo con estos atributos agregados en esta clase:

error: Unknown property "productos" in result type Categoria.

Puede ser que haya faltado actualizar los get y los set de las relaciones? En la próxima clase apenas empieza en pantalla se ve que lo ha hecho pero no se aclara.

Esta claro, pero hay que practicarlo porque son varios pasos interconectados

¿Por qué agrega cómo atributo el idCliente y luego el cliente, no sería innecesario el idCliente ?

Si tenemos una tabla productos con 100000 registros y 20000 productos tienen la categoria 1, el atributo lista de producto de la clase Categoria se llenará con 20000 registros? No me quedó claro la finalidad de tener ese atributo

Tengo una pregunta: Así como generamos Getters and Setters para las variables privadas de las columnas, debemos generarlos también para las variables privadas de tipo ‘Categoria’, ‘Producto’?, y de no ser necesario, por qué?.

Sugiero agregar getter and setter para las clases modificadas.
en el futuro les mostrará un error.

saludos.-

Cual es la diferencia de poner en la anotación JoinColumn insetable y updatable a false y usar la propiedad cascade none en la anotación ManyToOne?

no me queda claro, por que realizo un nuevo atributo, de tipo Lista, llamado Productos en la clase categoría

¿Por qué hay un salto del video anterior a este y ya tienes creada la clase categoria ?

Hola el problema me aparece en las anotations de la persistencia cuando mapeo la base.
Mensaje de error:
Cannot resolve table 'categorias’
Inspection info: This inspection controls whether the Persistence ORM annotations are checked against configured Datasources

que elegancia de curso :D,
![](https://static.platzi.com/media/user_upload/image-f3b098f1-daf9-44c6-bb00-872c1f2372b1.jpg)
El mapeo de categorias y clientes no fue explicado en los video.

En caso de que les llegue a dar el siguiente error al finalizar esta clase es porque el profesor puso mal el nombre de la relación en mappedBy debería ser “compra” en la clase Compra

Error:

Caused by: org.hibernate.AnnotationException: Association 'com.*.ecommerce.persistence.entity.Compra.productos' is 'mappedBy' a property named 'producto' which references the wrong entity type 'com.*.ecommerce.persistence.entity.Producto', expected 'com.*.ecommerce.persistence.entity.Compra'

Solución:

Parece una pirámide la explicación.

Creación de relación oneToMany

Crear relación manyToOne

No entiendo el porqué tienes arriba nombrados algunas propiedades que hacen referencia a una columna en la db y en la relacion, los atributos que declaras en la relacion tambíen hacen referencia a la misma columna

mapedBY--> xk

Donde está el video con la corrección de la relacion?

Como se podría hacer para probar la capa de persistencia con todas las tablas y relaciones mapeadas antes de continuar con la creación de los repositorios?

Y como se hace cuando la relacion es 1 a 1?? La anotacion va en ambas clases??