Gran video, cuando copie el codigo de GitHub y levante la aplicacion me creo tres tablas intermedias innecesarias, pero a lo largo del video vi como arreglarlo, fue una buena practica para lo que copiamos el codigo, un buen video que me sirve justo cuando tengo que modelar una base de datos algo grande en Spring Boot, muchas gracias
Llevaba días buscando información y se me aparece este canal con estos vídeos🤗🤗 De los mejores que hay ahora mismo en la plataforma. Muchas gracias por compartir este conocimiento tan valioso.
siempre estoy atento a tus videos, esto se que me ayudara, porque la de spring security por fin la entendi, despues de ver otros videos leer mucho tiempo por fin entendi,
Gran video tocayo. Estaría genial un vídeo con relaciones cuando hay claves compuestas, creo que uno se olvida siempre esa casuística y hay que recordarla a menudo...
Increíble tu canal, estaba un poco perdido con lo de las anotaciones, y me salio este video en recomendaciones, sin duda eres el que mejor explica estos conceptos, muchas gracias por compartir tus conocimientos.
Necesitaba repasar la relacion de muchos a muchos y termine viendo el video completo 😅 explicas muy bien, estaria bueno un curso de springboot desde los fundamentos hasta lo mas avanzado, yo lo compraría, muchas gracias por tan buen contenido
Normalmemte no hay este tipo de cursos de Spring boot en ninguna plataforma, posiblemente encuentres alguno que hace directamente proyectos y ninguno profundiza tanto, si llegas a subir uno a udemy pfff va volar! Muchas gracias.
Excelente tus videos hace poco descubrí este canal de verdad que explicas con gran facilidad los conceptos, por otro lado que bueno seria un video usando MapStruct con lombok.
buena enseñanza, yo uso el xampp para las bases de datos y funciona bien en algun hosting y funciona solo le pongo el comodin para conectarme desde fuera y funciona
Muchas gracias por el video, me gustaría que continuases con una trayectoria más inicial tal y como hiciste en este video de otros módulos o Spring en general, agradecido quedo, saludos desde BO.
Tengo que realizar un sistema, pero la base de datos ya existe. Entonces execute jpa buddy para hacer la ingenieria inversa y crear las entidades pero este video me va a ayudar a entender los conceptos. Muchas gracias👍👍👍
Excelente video, abusando de tu amabilidad podrías generar un video tocando el tema de transaccionalidad y concurrencia con bases de datos usando jpa, siguiendo el mismo ejemplo por favor
Genial, explicas muy bien. He visto muchos videos sobre Spring Data y las relaciones y se quedan muy cortos o no se les entiende, enserio mil gracias. Una pregunta, no has pensado en hacer un curso de pago sobre Spring Boot, en serio que tu manera de explicar es super didactica y se entiende muy bien. He hecho algunos curso en Udemy y Platzi pero realmente uno no siente que haya adquirido los conocimientos a profundidad. En español casi no se encuentra informacion de calidad sobre Spring Boot y seria muy bueno que lograses sacar un curso sobre el tema donde expliques todo de forma mas detallada y mas profunda (Spring Boot, Spring Data, Spring Security, microservicios, etc).
Hola, muchas gracias por tu comentario. Me alegra que haya sido de utilidad para ti. De hecho si he pensado en hacer un curso completo de pago sobre Spring pero aún es un proyecto que se dará un poco más adelante. ¡Saludos!
Buenas tardes, Felicidades por tu canal. Sería interesante que hicieras el vídeo de las distintas opcioens del atributo cascade de una relación de entidades ya que, por ejemplo, me confundo cuando usar MERGER o REFRESH, etc. Muhas gracias de antemano y un saludo.
Hola, no entiendo a qué te refieres con "IJ". Pero si la base de datos ya existe, todo funciona exactamente igual. No cambia nada, solo debes escribir el mapeo correctamente. ¡Saludos!
Buen video bro, me gustaría si puedes complementarlo haciendo un flujo por postman desde un controlador para ver los datos por consola de toda la aplicatividad de ese video, saludos desde Rionegro, Antioquia
Hermano, he estado buscando a alguien que me explicara correctamente para que mierda sirve el mappedBy desde hace mucho tiempo! A vos te basto con una oracion para que no se me olvide mas como funciona! Te ganaste un suscriptor con eso! Muchas gracias campeon!
hola, de antemano te agradezco por este video, es muy claro e intuitivo, sin embargo tengo una pregunta, al momento de poner en practica estas entidad con sus respectivos servicios y controladores, tuve este problema: primero use un endpoint post para crear una asociacion de futbol, y hasta ahi todo bien, despues hice un metodo post para crear un nuevo club, a la cual le agregue el id de la asociacion que habia creado posteriormente, al momento de hacer la peticion, se creo un bucle muy largo y repetitivo, la verdad no logre resolver a que se debia, si puedes ayudarme con es duda seria fantastico
Hola, la verdad es complicado resolver ese tema en un comentario y más aún porque no conozco la lógica que estás usando, lo que te recomiendo es que cuando vayas a agregar el club no le agregues solo el ID sino que debes asociar la entidad completa para que funcione, es decir asociar el objeto completo para que JPA entienda la relación. Espero puedas solucionarlo. ¡Saludos!
Grande brooo con este video, mencionaste que podrias hacer explicaciones sobre el CascadeType y tambien sobre FetchType aunque de 30 min seria estupendo pero igual gracias por los videos, saludos
Hola, tanto @EmbeddedId como @IdClass se utilizan para definir claves compuestas en entidades, pero se utilizan de manera diferente. Personalmente prefiero usar @EmbebbedId porque es mucho más simple, pero no hay ningún problema en usar una u otra. ¡Saludos!
Saludos cuando realizamos las consultas y en el caso de campos que estan como LAZY y queremos solicitarlos como seria?. Se puede ampliar este mismo ejemplo creando servicios rest para crear crud?
Hola, cuando un atributo List está marcado como LAZY, para obtener los datos debes llamar explícitamente al método getter de dicho atributo para que JPA haga la consulta y traiga los datos. ¡Saludos!
Muchas gracias por el video! Tengo una duda, el cascadeType se coloca siempre en la entidad que es dueña de la relación, en la que No es dueña de la relación o en las dos? Espero y se entienda la pregunta, gracias de antemano! Saludos.
Se pone en el dueño de la relación en caso de ser una relación unidireccional, si es una relación bidireccional entonces se pone en la que te sea más útil o la más relevante. ¡Saludos!
Hola!! gracias por tu tiempo y lo bien que explicas. En la relación @OneToMany si yo quisiera mostrar un club y una lista de los jugadores asociados a este , como la puedo visualizar si la clave foranea (Id) de jugadores no esta en club? Mil gracias!!
Hola, en este caso trabajamos con una relación unidireccional, es por eso que no aparece la clave foránea. Para solucionar eso debes trabajar con una relación bidireccional, ya tengo un vídeo hablando de relaciones unidireccionales y bidireccionales, te comparto el enlace: ua-cam.com/video/NnNzisMeRWk/v-deo.htmlsi=CNRS6-XiLz-7lX9N Espero que te sirva. ¡Saludos!
Si uno no práctica se olvida, este video me ayudo mucho a recuperar lo perdido, gracias Sr. Consulta, solo bastaría usar el mappeBy, que diferencia existe con el targetEntity ?
Hola, TargetEntity te sirve para invitarle a JPA cuál es la clase con la que se debe establecer la relación. MappedBy por otro lado te sirve para indicarle el atributo exacto con el cual se hará la relación. ¡Saludos!
Hey! Esta muy bueno tu canal ! Me ha gustado mucho tu video, lo has explicado fenomenal... En mi caso, hay veces que tengo unas dudas con relación la inserción de objetos que se recibe desde el front... por ejemplo, usando tu mismo ejercicio; si esta creado un Club y que tienes muchos jugadores ¿Como sería más o menos la lógica en el Controller? ¿Hay que enviar el club completo y con todo y jugadores... o se puede enviar por parte y que luego se actualice el Club? No se si me entiendes xD
Hola, la lógica puede variar dependiendo de la necesidad, puedes enviar un club con 1,2 o 3 jugadores o puedes enviar los 11. Lo que verdaderamente importa es que cuando hagas la inserción con JPA tengas el objeto del club relacionado con algún jugador. ¡Saludos!
Hola, hay que diferenciar algo @Entity es una anotación de JPA y @Getters y @Setters son anotaciones de lombok, son 2 cosas diferentes. En este caso la anotación @Data es quien ya nos trae los getters y setters. Si quieres obtener mas información te invito a visitar mi guia completa de lombok desde cero. ua-cam.com/video/IZy2a2vNOvs/v-deo.html Saludos.
Genial tu explicación bro, teniendo en cuenta que tuviste que leer el blog y explicarlo a tu manera, pero me nace una duda, si esas entidades de muchos a muchos tuviera que mapearlas a un DTO cómo seria la mejor manera de representarlo, deberia crear ambas entidades con ambas listas o solo una entidad...si alguien me echa un cable con esa duda se lo agradeceria
Hola, muchas gracias por comentar. La mejor manera de mapear Entities a DTO y viceversa es usando los denominados mappers, existen varios pero yo te recomiendo usar OrikaMapper o mapStruct. Son librerías que hacen eso por ti. ¡Saludos!
Gracias por la info bro de hecho utilizo modelMapper pero mi pregunta iba mas orientada a como representar las listas en un DTO, se debe crear un dto para cada entidad y add las listas en cada una de las entidades pero eso entraria en un bucle? @@unprogramadornace
@@jacobocapa3647Hola, normalmente los mappers también mapean listas, en mapStruct y orikaMapper se pone el mapeo de las listas sin tener que hacer un bucle tu mismo. La librería se encarga de todo. No sé cómo lo maneja modelMapper, aunque tengo conocidos que se quejan mucho de modelMapper por eso nunca lo uso. ¡Saludos!
@@santiagoperezposada9493 Hola amigo, la vrd hasta ahora el modelMapper no me a dado problemas con el mapeo de propiedades pero si al momento de hacerlo con la relacion de muchos a muchos, en este caso el servidor no esta recibiendo el DTO mediante el verbo POST, en el caso de las demás relaciones cumple con su función sin ningun problema, ya llevo 2 dias en esto jajajaja
@@jacobocapa3647 Hola, he estado observando el hilo de conversación, es difícil darte una respuesta concreta ya que existen muchas causas por las cuales pueda estar fallando tu API, aunque creo que no debería ser un problema de la librería a menos que la estés usando mal, pero no sabría darte una respuesta concreta. ¡Saludos!
Hola. Saludos en las relaciones cuando uso LAZI carga perezosa como hago para usar el atributo que tiene LAZI. por ejemplo tengo dos tablas relacionadas area y asignatura un area puede tener muchas asignaturas. en la entidad asignatura tengo un atributo que es idarea y tiene fetch LAZI, pero al consultar en postman get de asignatura me muestra los otros campos pero no me deja ver idarea, pero al crear una asignatura le paso el id y si lo crea en la base de datos. como puedo acceder a ese atributo idarea en asignatura. gracias
Hola, creo que estas utilizando de una forma incorrecta los fetch, los fetch solo se usan en listas y no en atributos individuales como "IdArea". Debes revisar como estas relacionando tus entidades. ¡Saludos!
Venga y si necesito crear un campo adicional en la tabal intermedia? donde se crea? o se crea una nueva tabla con los id de las tablas relacionada mas el campo adicional?
@@unprogramadornace Pero no tiene mucho sentido segun mi punto de vista ya que la tabla intermedia relaciona los ids de las tablas adyacentes y a la vez crea su propio id y no hay manera de que una tabla intermedia relacione nuevos ids de las tablas adyacentes con el mismo id que ya tiene.
@@henrymartinez1055 Hola, tal vez no tiene sentido para ti, pero asi se trabaja. También debes tener en cuenta que la tabla intermedia se forma por los ID de las otras dos tablas con algo llamado Embebed ID y normalmente se trabaja con la antotación @Embedable. Diría que no tiene sentido para ti porque tal vez falta profundizar un poco más en el manejo de estas situaciones. ¡Saludos!
Hola, acabas de ganar un subscriptor =). Solo tengo una duda en la ultima parte del video cuando haces ingenieria inversa y se muestran el diagrama EER. ¿Por que la relacion entre la tabla coach y la tabla club tiene la patita de gallo (o como se le llame a la representacion grafica de muchos) en la tabla club si es una relacion uno a uno, no deberia verse visualmente como una sola linea?
Hola, es cierto, debería haber una línea continua, es probable que JPA esté tomando la relación como una relación de uno a muchos, al ser un proceso automático a veces suelen haber incongruencias, para ello es indispensable saber el tema de unidireccionalidad y bidireccionalidad para indicarle a JPA como debe tomar las relaciones. Excelente tu apreciación. ¡Saludos!
Al momento de tener que eliminar la tabla que se habia creado "club_player" no me la borraba al aplicar los cambios , incluso probre cambiando a update , aunque ya teniendo ddl-auto en create-drop deberia funcionar verdad? cuestion que fue raro porque la verdad que lo solucione borrando la base de dato desde workbench y reiniciando la applicacion..
Hola, muchas gracias por tu pregunta. @Data en lombok es un shortcut que incluye las siguientes anotaciones: @Setter, @Getter, @EqualsAndHashCode, @RequiredArgsConstructor y @ToString. Como puedes ver @Data no trae en su interior los constructores por lo tanto ese es el motivo por el cual lo usamos en el video. Te dejo la documentacion de lombok por si quieres hecharle un vistazo: projectlombok.org/features/Data ¡Saludos!
Hola, eso pasa cuando tienes configurada la siguiente propiedad: spring.jpa.hibernate.ddlAuto=create-drop Eso hace que cuando levantes tu proyecto se crean las tablas y cuando el proyecto se detiene automaticamente se borran las tablas. Si no quieres borrarlas cuando detengas el proyecto debes configurar la propiedad de la siguiente forma: spring.jpa.hibernate.ddlAuto=create Espero que eso te ayude. ¡Saludos!
Hola, creo que tienes una confusión. Cuando trabajas con microservicios no relacionas tablas en bases de datos separadas, sino que cada microservicio tiene su propia base de datos ó todos los microservicios comparten la misma base de datos. Entonces en ese caso la respuesta a tu pregunta es que no es posible relacionar tablas de diferentes bases de datos. ¡Saludos!
Si yo quisiera que la tabla creada por el @ManyToMany, ademas de las claves foraneas, tuviera una clave primaria, ¿Deberia modelarla como entidad, borrar ese ManyToMany y poner ManyToOne en la entidad nueva?
Hola, debes buscar una implementación de @EmbebedId y @Embedable de JPA. Con eso puedes crear clases con claves foráneas anidadas. Espero que eso te pueda ayudar. ¡Saludos!
Lo que desearía , esque hicieras un proyecto donde se pueda alojar imágenes a aws y guardarlo en la base de datos el enlace de esa imagen o archivo, o nose que es lo que se guardaría en la base de datos,
Por qué cuando en properties (spring.jpa.hibernate.ddlAuto) coloco el "create-drop" me sale este error a la hora de ejecutar el proyecto : Error executing DDL "alter table club drop foreign key FKkjbpmf7qnge34nwabj1d3gss9" via JDBC [Table 'asociacionjpa.club' doesn't exist] y cuando uso el "update" no me salta el error pero no me actualiza los cambios
Estaria espectacular un vide sobre los cascadeTypes desde ya gracias
Gran video, cuando copie el codigo de GitHub y levante la aplicacion me creo tres tablas intermedias innecesarias, pero a lo largo del video vi como arreglarlo, fue una buena practica para lo que copiamos el codigo, un buen video que me sirve justo cuando tengo que modelar una base de datos algo grande en Spring Boot, muchas gracias
Llevaba días buscando información y se me aparece este canal con estos vídeos🤗🤗 De los mejores que hay ahora mismo en la plataforma. Muchas gracias por compartir este conocimiento tan valioso.
Gracias a ti por comentar.
¡Saludos!
Gracias profesor. Este video me sirvió para terminar de entender las relaciones con JPA y la teoría de BD. Ejemplos muy claros y detallados.
Muchas gracias por comentar, me alegra que el vídeo te haya ayudado a entender mejor JPA.
¡Saludos Crack!
Estaba viendo que no tiene mucho que abriste tu canal, cuanto nos habiamos perdido de tu conocimiento, muchas gracias por tus videos bro.
siempre estoy atento a tus videos, esto se que me ayudara, porque la de spring security por fin la entendi, despues de ver otros videos leer mucho tiempo por fin entendi,
Muchas gracias por el apoyo.
¡Saludos!
Me pasó lo mismo. Por fin entendí Spring security 👍👍
Gran video tocayo.
Estaría genial un vídeo con relaciones cuando hay claves compuestas, creo que uno se olvida siempre esa casuística y hay que recordarla a menudo...
Muchas gracias por compartir tus conocimientos.
Sobresaliente como siempre.
Un saludo desde Valladolid (España)
Excelente , mucha pedagogia en tus videos se entiende todo, gracias.
Increíble tu canal, estaba un poco perdido con lo de las anotaciones, y me salio este video en recomendaciones, sin duda eres el que mejor explica estos conceptos, muchas gracias por compartir tus conocimientos.
Muchas gracias por tu comentario, me alegra que mi video de haya aclarado las dudas.
¡Saludos!
Excelente video, la explicación del paso a paso es genial. Muchas gracias por compartir tan maravilloso conocimiento. 🤩
Buenas tardes definitivamente usted explica demasiado bien, muchas gracias, con este video si que entendí super bien el tema.
Muchas gracias por tu comentario.
¡Saludos!
Mil gracias, es un canal fenomenal han sido de gran aporte esclarecer los conceptos con ejemplos prácticos.
Geniales todos tus videos, explicas asombrosamente bien. Muchas gracias. CANAL 100% RECOMENDADO !!!
Muchas gracias por tu comentario. ¡Saludos Crack!
Volvi a repasar el video, es muy claro y la manera como desarrolla el tema en conjunto con la base de datos me gusto.
Necesitaba repasar la relacion de muchos a muchos y termine viendo el video completo 😅 explicas muy bien, estaria bueno un curso de springboot desde los fundamentos hasta lo mas avanzado, yo lo compraría, muchas gracias por tan buen contenido
Excelente explicación, lo puse en x2 y se entendió todo perfecto!
Muy bueno hermano, gracias por el trabajo
Super canal de springboot, me sirvio muchisimo para aprender! saludos!
muy buen video, me ayudo mucho para aprender. que siga esa calidad de enseñanza
Tus aportes me estan ayudando un montón gracias por enseñar tan bien, y si ya existe el video de los cascades me gustaria verlo
Gran video, felicidades !!
Complementando este video, estaría bien agregar las funcionalidades de insertar y consultar 👍👍
Hola felicidades he checkeado tus vídeos y se ve que estás enseñando a profundidad .
Excelente video, muchas gracias!
tu contenido es increible ;)
Woow!
Esta información vale millones ! Gracias!!
Excelente profe, explicación full, a la primera lo entendi.
¡Excelente!
Normalmemte no hay este tipo de cursos de Spring boot en ninguna plataforma, posiblemente encuentres alguno que hace directamente proyectos y ninguno profundiza tanto, si llegas a subir uno a udemy pfff va volar! Muchas gracias.
Explicas excelente hermano, te entiendo perfectamente!
Gracias por comentar.
¡Saludos!
Buenísimo video bien explicado y detallado y útil para poner en practica lo aprendido !
Lo hace muy facil de entender. Buena pedagogía
Hola excelente video, la explicacion esta muy clara!
Excelente contenido! Aguardo el video de Cascade si alguna vez tienes el tiempo de hacerlo. Muchísimas gracias por tu dedicación.
Muchas gracias parcero, Gran contenido, Si tienes el tiempo tírate el video a profundidad sobre el manejo de cascade
Excelente tus videos hace poco descubrí este canal de verdad que explicas con gran facilidad los conceptos, por otro lado que bueno seria un video usando MapStruct con lombok.
Hola, muchas gracias por tu comentario.
Poco a poco voy a ir agregando nuevos temas.
Gracias por el apoyo.
Buenazo, a seguir practicando
buena enseñanza, yo uso el xampp para las bases de datos y funciona bien en algun hosting y funciona solo le pongo el comodin para conectarme desde fuera y funciona
Bro Como hosteo mi base de datos ???
Excelente video, aprendi mucho. Gracias!
Gracias por el contenido maestro.
Muchísimas gracias, espero hallar en el video la solución para la redundancia cíclica.
exelente informacion gracias por compartir tu conocimiento amigo
Un saludo desde Pitalito Huila mi hermano
muy buen vídeo, gracias
Que buen video gracias.
Muchas gracias por el video, me gustaría que continuases con una trayectoria más inicial tal y como hiciste en este video de otros módulos o Spring en general, agradecido quedo, saludos desde BO.
Gracias, muy buena explicación!!!
De verdad mil gracias, he entendido todo.
Me alegra que te haya servido el vídeo.
¡Saludos!
buen video bro entendi todo tan facil muchas gracias
Tengo que realizar un sistema, pero la base de datos ya existe. Entonces execute jpa buddy para hacer la ingenieria inversa y crear las entidades pero este video me va a ayudar a entender los conceptos. Muchas gracias👍👍👍
Qué buen profesor
excelente video
Excelente video, abusando de tu amabilidad podrías generar un video tocando el tema de transaccionalidad y concurrencia con bases de datos usando jpa, siguiendo el mismo ejemplo por favor
Excelente video, gracias.
Excelente video, me ayudo muchisimo
Me alegra leer eso.
¡Saludos!
Excelente explicacion
Mas que excelente la explicacion. Saludos
Tus videos son una joya!
Muchas gracias por el apoyo.
¡Saludos!
El mejor curso de JPA !! Tienes enlace de cursos de udemy?
Hola, por ahora no tengo cursos de udemy.
¡Saludos!
Genial, explicas muy bien. He visto muchos videos sobre Spring Data y las relaciones y se quedan muy cortos o no se les entiende, enserio mil gracias. Una pregunta, no has pensado en hacer un curso de pago sobre Spring Boot, en serio que tu manera de explicar es super didactica y se entiende muy bien. He hecho algunos curso en Udemy y Platzi pero realmente uno no siente que haya adquirido los conocimientos a profundidad. En español casi no se encuentra informacion de calidad sobre Spring Boot y seria muy bueno que lograses sacar un curso sobre el tema donde expliques todo de forma mas detallada y mas profunda (Spring Boot, Spring Data, Spring Security, microservicios, etc).
Hola, muchas gracias por tu comentario. Me alegra que haya sido de utilidad para ti. De hecho si he pensado en hacer un curso completo de pago sobre Spring pero aún es un proyecto que se dará un poco más adelante.
¡Saludos!
Gracias TOTALES ... muy buena didactica ...
Tendrias Cursos de Quarkus ?
Hola, no. No tengo contenido sobre Quarkus.
¡Saludos!
Buenas tardes,
Felicidades por tu canal.
Sería interesante que hicieras el vídeo de las distintas opcioens del atributo cascade de una relación de entidades ya que, por ejemplo, me confundo cuando usar MERGER o REFRESH, etc.
Muhas gracias de antemano y un saludo.
Genial!! impecables sus videos, tengo una consulta, en caso de que la base de datos ya este realizada, como mapeamos todo desde IJ?
Hola, no entiendo a qué te refieres con "IJ". Pero si la base de datos ya existe, todo funciona exactamente igual. No cambia nada, solo debes escribir el mapeo correctamente.
¡Saludos!
Tremendo este canal 👻
Buen video bro, me gustaría si puedes complementarlo haciendo un flujo por postman desde un controlador para ver los datos por consola de toda la aplicatividad de ese video, saludos desde Rionegro, Antioquia
me voy a hacer 3 cuentas para darte los likes de 3 en 3!!!! Thanks!!!!... pd... mejor explicado imposible!!!!
Bienvenidos esos 3 likes.
¡Saludos!
Hermano, he estado buscando a alguien que me explicara correctamente para que mierda sirve el mappedBy desde hace mucho tiempo! A vos te basto con una oracion para que no se me olvide mas como funciona! Te ganaste un suscriptor con eso! Muchas gracias campeon!
Muchas gracias a ti por comentar, me alegra que mi vídeo te haya ayudado a tener mas claro el tema de JPA.
¡Saludos!
hola, de antemano te agradezco por este video, es muy claro e intuitivo, sin embargo tengo una pregunta, al momento de poner en practica estas entidad con sus respectivos servicios y controladores, tuve este problema: primero use un endpoint post para crear una asociacion de futbol, y hasta ahi todo bien, despues hice un metodo post para crear un nuevo club, a la cual le agregue el id de la asociacion que habia creado posteriormente, al momento de hacer la peticion, se creo un bucle muy largo y repetitivo, la verdad no logre resolver a que se debia, si puedes ayudarme con es duda seria fantastico
Hola, la verdad es complicado resolver ese tema en un comentario y más aún porque no conozco la lógica que estás usando, lo que te recomiendo es que cuando vayas a agregar el club no le agregues solo el ID sino que debes asociar la entidad completa para que funcione, es decir asociar el objeto completo para que JPA entienda la relación.
Espero puedas solucionarlo.
¡Saludos!
Grande brooo con este video, mencionaste que podrias hacer explicaciones sobre el CascadeType y tambien sobre FetchType aunque de 30 min seria estupendo pero igual gracias por los videos, saludos
Hola, gracias por comentar. Tendré en cuenta tu sugerencia, aunque mis videos suelen ser largos porque me gusta dar el detalle de todo.
¡Saludos!
Excelente video, me ha servido mucho para aclarar conceptos. Una pregunta: Vas a hacer algun video de Spring Cloud? Espero mas videos!
Muchas gracias por tu comentario.
Tengo en mente subir varios temas a futuro, entre ellos se encuentra spring cloud.
¡Saludos!
Gracias Santi, excelente video. Tienes video de JPA con llaves compuestas? Cual es mejor enfoque entre @IDClass o @EmbeddedID ?
Hola, tanto @EmbeddedId como @IdClass se utilizan para definir claves compuestas en entidades, pero se utilizan de manera diferente. Personalmente prefiero usar @EmbebbedId porque es mucho más simple, pero no hay ningún problema en usar una u otra.
¡Saludos!
me salvaste el cuello bro!!! genial!!
Saludos cuando realizamos las consultas y en el caso de campos que estan como LAZY y queremos solicitarlos como seria?. Se puede ampliar este mismo ejemplo creando servicios rest para crear crud?
Hola, cuando un atributo List está marcado como LAZY, para obtener los datos debes llamar explícitamente al método getter de dicho atributo para que JPA haga la consulta y traiga los datos.
¡Saludos!
Muchas gracias por el video!
Tengo una duda, el cascadeType se coloca siempre en la entidad que es dueña de la relación, en la que No es dueña de la relación o en las dos?
Espero y se entienda la pregunta, gracias de antemano! Saludos.
Se pone en el dueño de la relación en caso de ser una relación unidireccional, si es una relación bidireccional entonces se pone en la que te sea más útil o la más relevante.
¡Saludos!
Estaría genial un crud de estos servicios en conjunto.
Hola!! gracias por tu tiempo y lo bien que explicas. En la relación @OneToMany si yo quisiera mostrar un club y una lista de los jugadores asociados a este , como la puedo visualizar si la clave foranea (Id) de jugadores no esta en club?
Mil gracias!!
Hola, en este caso trabajamos con una relación unidireccional, es por eso que no aparece la clave foránea. Para solucionar eso debes trabajar con una relación bidireccional, ya tengo un vídeo hablando de relaciones unidireccionales y bidireccionales, te comparto el enlace:
ua-cam.com/video/NnNzisMeRWk/v-deo.htmlsi=CNRS6-XiLz-7lX9N
Espero que te sirva.
¡Saludos!
Si uno no práctica se olvida, este video me ayudo mucho a recuperar lo perdido, gracias Sr.
Consulta, solo bastaría usar el mappeBy, que diferencia existe con el targetEntity ?
Hola, TargetEntity te sirve para invitarle a JPA cuál es la clase con la que se debe establecer la relación. MappedBy por otro lado te sirve para indicarle el atributo exacto con el cual se hará la relación.
¡Saludos!
seria bueno el video con los cascade
Hey! Esta muy bueno tu canal ! Me ha gustado mucho tu video, lo has explicado fenomenal... En mi caso, hay veces que tengo unas dudas con relación la inserción de objetos que se recibe desde el front... por ejemplo, usando tu mismo ejercicio; si esta creado un Club y que tienes muchos jugadores ¿Como sería más o menos la lógica en el Controller? ¿Hay que enviar el club completo y con todo y jugadores... o se puede enviar por parte y que luego se actualice el Club? No se si me entiendes xD
Hola, la lógica puede variar dependiendo de la necesidad, puedes enviar un club con 1,2 o 3 jugadores o puedes enviar los 11. Lo que verdaderamente importa es que cuando hagas la inserción con JPA tengas el objeto del club relacionado con algún jugador.
¡Saludos!
Solo falto ver bidireccionalidad, se agradece todos los conceptos
Dentro de estas entidades no están las anotaciones @Getter, @Setter, por poner la anotación @Entity ya no son necesarias?
Hola, hay que diferenciar algo @Entity es una anotación de JPA y @Getters y @Setters son anotaciones de lombok, son 2 cosas diferentes. En este caso la anotación @Data es quien ya nos trae los getters y setters. Si quieres obtener mas información te invito a visitar mi guia completa de lombok desde cero.
ua-cam.com/video/IZy2a2vNOvs/v-deo.html
Saludos.
Genial tu explicación bro, teniendo en cuenta que tuviste que leer el blog y explicarlo a tu manera, pero me nace una duda, si esas entidades de muchos a muchos tuviera que mapearlas a un DTO cómo seria la mejor manera de representarlo, deberia crear ambas entidades con ambas listas o solo una entidad...si alguien me echa un cable con esa duda se lo agradeceria
Hola, muchas gracias por comentar. La mejor manera de mapear Entities a DTO y viceversa es usando los denominados mappers, existen varios pero yo te recomiendo usar OrikaMapper o mapStruct. Son librerías que hacen eso por ti.
¡Saludos!
Gracias por la info bro de hecho utilizo modelMapper pero mi pregunta iba mas orientada a como representar las listas en un DTO, se debe crear un dto para cada entidad y add las listas en cada una de las entidades pero eso entraria en un bucle?
@@unprogramadornace
@@jacobocapa3647Hola, normalmente los mappers también mapean listas, en mapStruct y orikaMapper se pone el mapeo de las listas sin tener que hacer un bucle tu mismo. La librería se encarga de todo. No sé cómo lo maneja modelMapper, aunque tengo conocidos que se quejan mucho de modelMapper por eso nunca lo uso.
¡Saludos!
@@santiagoperezposada9493 Hola amigo, la vrd hasta ahora el modelMapper no me a dado problemas con el mapeo de propiedades pero si al momento de hacerlo con la relacion de muchos a muchos, en este caso el servidor no esta recibiendo el DTO mediante el verbo POST, en el caso de las demás relaciones cumple con su función sin ningun problema, ya llevo 2 dias en esto jajajaja
@@jacobocapa3647 Hola, he estado observando el hilo de conversación, es difícil darte una respuesta concreta ya que existen muchas causas por las cuales pueda estar fallando tu API, aunque creo que no debería ser un problema de la librería a menos que la estés usando mal, pero no sabría darte una respuesta concreta.
¡Saludos!
Hola. Saludos en las relaciones cuando uso LAZI carga perezosa como hago para usar el atributo que tiene LAZI. por ejemplo tengo dos tablas relacionadas area y asignatura un area puede tener muchas asignaturas. en la entidad asignatura tengo un atributo que es idarea y tiene fetch LAZI, pero al consultar en postman get de asignatura me muestra los otros campos pero no me deja ver idarea, pero al crear una asignatura le paso el id y si lo crea en la base de datos. como puedo acceder a ese atributo idarea en asignatura. gracias
Hola, creo que estas utilizando de una forma incorrecta los fetch, los fetch solo se usan en listas y no en atributos individuales como "IdArea". Debes revisar como estas relacionando tus entidades.
¡Saludos!
Venga y si necesito crear un campo adicional en la tabal intermedia? donde se crea? o se crea una nueva tabla con los id de las tablas relacionada mas el campo adicional?
Hola, para ello debes crear una tabla intermedia manualmente, es decir, una nueva clase. Alli mapeas todo.
¡Saludos!
@@unprogramadornace Ahh bueno gracias, y qué relación tendría esta tabla intermedia con las otras tablas?
@@henrymartinez1055 Hola, uno a muchos con cada una de las entidades adyacentes.
¡Saludos!
@@unprogramadornace Pero no tiene mucho sentido segun mi punto de vista ya que la tabla intermedia relaciona los ids de las tablas adyacentes y a la vez crea su propio id y no hay manera de que una tabla intermedia relacione nuevos ids de las tablas adyacentes con el mismo id que ya tiene.
@@henrymartinez1055 Hola, tal vez no tiene sentido para ti, pero asi se trabaja. También debes tener en cuenta que la tabla intermedia se forma por los ID de las otras dos tablas con algo llamado Embebed ID y normalmente se trabaja con la antotación @Embedable. Diría que no tiene sentido para ti porque tal vez falta profundizar un poco más en el manejo de estas situaciones.
¡Saludos!
Hola, acabas de ganar un subscriptor =). Solo tengo una duda en la ultima parte del video cuando haces ingenieria inversa y se muestran el diagrama EER. ¿Por que la relacion entre la tabla coach y la tabla club tiene la patita de gallo (o como se le llame a la representacion grafica de muchos) en la tabla club si es una relacion uno a uno, no deberia verse visualmente como una sola linea?
Hola, es cierto, debería haber una línea continua, es probable que JPA esté tomando la relación como una relación de uno a muchos, al ser un proceso automático a veces suelen haber incongruencias, para ello es indispensable saber el tema de unidireccionalidad y bidireccionalidad para indicarle a JPA como debe tomar las relaciones.
Excelente tu apreciación.
¡Saludos!
Al momento de tener que eliminar la tabla que se habia creado "club_player" no me la borraba al aplicar los cambios , incluso probre cambiando a update , aunque ya teniendo ddl-auto en create-drop deberia funcionar verdad? cuestion que fue raro porque la verdad que lo solucione borrando la base de dato desde workbench y reiniciando la applicacion..
Es común que pase eso, no te preocupes. Al igual teniendo el ddl-auto en create-drop ya no debería suceder.
¡Saludos!
Excelente video una pregunta , tengo entendido que @Data ya trae dentro @AllArgs y @NoArgs , esto es asi? si es asi porque colocas las 3 etiquetas?
Hola, muchas gracias por tu pregunta.
@Data en lombok es un shortcut que incluye las siguientes anotaciones:
@Setter,
@Getter,
@EqualsAndHashCode, @RequiredArgsConstructor y @ToString.
Como puedes ver @Data no trae en su interior los constructores por lo tanto ese es el motivo por el cual lo usamos en el video.
Te dejo la documentacion de lombok por si quieres hecharle un vistazo:
projectlombok.org/features/Data
¡Saludos!
buen video
por que cuando detengo mi depurador de borra las tablas de mysql y cuando hago trabajar vuelve a aparecer
Hola, eso pasa cuando tienes configurada la siguiente propiedad:
spring.jpa.hibernate.ddlAuto=create-drop
Eso hace que cuando levantes tu proyecto se crean las tablas y cuando el proyecto se detiene automaticamente se borran las tablas. Si no quieres borrarlas cuando detengas el proyecto debes configurar la propiedad de la siguiente forma:
spring.jpa.hibernate.ddlAuto=create
Espero que eso te ayude.
¡Saludos!
Jajaja no me percate del drop, ahora que estoy haciendo el de graphql me di cuenta, excelente tus videos
@@juniorsepping9055 Suele pasar, jeje. Me alegra que estés haciendo el proyecto de Spring con GraphQL, disfrutalo.
¡Saludos!
y estas relaciones de @OnetoMany @ManytoMany, en donde cada Tabla está en diferentes Bases de Datos usando microservicios separados, ya no irían no??
Hola, creo que tienes una confusión. Cuando trabajas con microservicios no relacionas tablas en bases de datos separadas, sino que cada microservicio tiene su propia base de datos ó todos los microservicios comparten la misma base de datos. Entonces en ese caso la respuesta a tu pregunta es que no es posible relacionar tablas de diferentes bases de datos.
¡Saludos!
@@unprogramadornace Gracias crack.👍
Si yo quisiera que la tabla creada por el @ManyToMany, ademas de las claves foraneas, tuviera una clave primaria, ¿Deberia modelarla como entidad, borrar ese ManyToMany y poner ManyToOne en la entidad nueva?
Hola, debes buscar una implementación de @EmbebedId y @Embedable de JPA.
Con eso puedes crear clases con claves foráneas anidadas.
Espero que eso te pueda ayudar.
¡Saludos!
@@unprogramadornace Espectacular, ahora me pongo a mirar eso. Muchisimas Gracias por responder y por los videos!!
Lo que desearía , esque hicieras un proyecto donde se pueda alojar imágenes a aws y guardarlo en la base de datos el enlace de esa imagen o archivo, o nose que es lo que se guardaría en la base de datos,
Por qué cuando en properties (spring.jpa.hibernate.ddlAuto) coloco el "create-drop" me sale este error a la hora de ejecutar el proyecto : Error executing DDL "alter table club drop foreign key FKkjbpmf7qnge34nwabj1d3gss9" via JDBC [Table 'asociacionjpa.club' doesn't exist] y cuando uso el "update" no me salta el error pero no me actualiza los cambios
Hola, eso quiere decir que tienes un problema con las relaciones de tus clases, debes revisar que estén correctamente relacionadas.
¡Saludos!