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...
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.
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
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
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,
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
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
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.
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.
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👍👍👍
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.
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!
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!
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
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, 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!
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: ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-NnNzisMeRWk.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!
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, 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!
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,
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!
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!
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, 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. ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-IZy2a2vNOvs.html 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, 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!
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!
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!
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