Spring Data | @ManyToMany @ManyToOne @OneToMany - Tutorial Completo Fácil
HTML-код
- Опубликовано: 18 июл 2023
- 🎁 Curso gratuito de JAVA - programandoenjava.com/courses... ✅ ¡Subscríbete a Programando en Java! 👉 bit.ly/3y99SiI
✅ ¡Apoya a que pueda seguir subiendo contenido! 👉 / @programando_en_java
📲 ¡Descargate mi app de lista de compras! 👉 play.google.com/store/apps/de...
Redes Sociales:
Comunindad en Discord - / discord
Página web: programandoenjava.com
Instagram: / programandoenjava
Twitter: / progenjava
TikTok: / programandoenjava
Twitch: / programandoenjava
Libros recomendados 📚
Clean Code (INGLÉS) - amzn.to/46T8L4I
Clean Code (ESPAÑOL) - amzn.to/46xBo7Z
Clean Architecture (INGLÉS) - amzn.to/3ZZXhtS
Clean Architecture (ESPAÑOL) - amzn.to/3rM1k0y
The Clean Coder (INGLÉS) - amzn.to/3PQ26RS
The Clean Coder (ESPAÑOL) - amzn.to/46VtzJ3
Clean Craftsmanship (INGLÉS) - amzn.to/45CeESO
Clean Craftsmanship (ESPAÑOL) - amzn.to/3Foj0lK
Effective Java (INGLÉS) - amzn.to/3QkHOkU
Cracking the Coding Interview (INGLÉS) - amzn.to/48W0Oh1
System Design Interview (INGLÉS) - amzn.to/3txECd5
¡Hola, mi nombre es Ricardo! Soy programador Senior con más de 8 años de experiencia. Me encanta todo el mundo de la tecnología y la programación y quiero ayudarte a entender mejor como funciona el mundo de JAVA sin importar tu nivel.
¡Si tienes alguna duda o preguntar, házmelo saber en los comentarios! 👇
¡Déjame saber qué más te gustaría ver!
Música usada:
A Magical Journey Through Space by Leonell Cassio | / leonellcassio
Music promoted by www.free-stock-music.com
Creative Commons Attribution-ShareAlike 3.0 Unported
creativecommons.org/licenses/... - Наука
🔔 ¡Ayúdame a llegar a 10.000 subs! 👉 bit.ly/3y99SiI
🎉 Apóyame - bit.ly/3y99SiI
🎁 CURSO GRATUITO de JAVA - programandoenjava.com/courses/curso-de-java-introduccion-a-la-programacion-java/
🫡¿Necesitas ayuda? ¡Reunión GRATUITA! 👉 calendly.com/ricardo-programandoenjava
👨💻¿Buscas trabajo? Encuéntralo en nuestro canal de Discord 👉 discord.com/channels/1049634483428663326/1197648841877504050
📱Redes Sociales 👉 linktr.ee/programandoenjava
Referencia circular en la entidad JPA - Spring Boot, Ojala hagas un video de esto...
Muchas gracias hermano, me ayudaste a entender full
sos un genio pela, gracias
Excelente video , me vino bien para entender las relaciones en java con JPA
Excelente vídeo, muchas gracias por el vídeo! Estoy aprendiendo mucho con tu canal de verdad!!
¡Espero que aprendas mucho por aquí, me alegro que te guste el canal! :)
Wow que bien explicado, me sirvió mucho, gracias!
muchas gracias crack me ayudaste un monton
Faltaria el cascade=ALL y el removeOnTrue y seria completa pero fue execelente la explicacion ricardo 😎
¡Gracias por el comentario! No quería hacer el vídeo muy denso y me salté esas partes, creo que sería mejor en otro vídeo pero muchas gracias por tomarte el tiempo en darme tu opinión :)
Exelente esto es algo infaltable si se quiere trabajar con JPA. Te falto mencionar los uno a uno aunque se comportan parecido a los uno a muchos ya no con una lista de objetos sino con un objeto. Me encantaria que hicieras unas clases de Spring Boot con Procedimientos Almacenados para oracle y mas JPA.
Tienes toda la razón, lo cierto es que no sé cómo se me pasó 😂 pero debería de haberlo incluido... Sobre los Procedimientos Almacenados... en mi opinión eso es algo antiguo que añade lógica en la parte de la base de datos y puede traer un poco de caos en los proyectos... no sé si traería un vídeo sobre ello, sobre JPA sigue tengo pensando en crear más vídeos explicativos 😁
Estaría bien un ejemplo de inserción y borrado, para ver como se crean las relaciones y como se eliminan para poder eliminar registros.
Muy claro y bueno el video.
¡Gracias por el comentario! No lo hice ya que existe un vídeo sobre JpaRepository en el canal y creo que eso cubriría ese apartado, pero quizás debería de haber introducido algún ejemplo... :P
Hola, tu video me ha ayudado un montón. Gracias
Gracias a ti y ver mi vídeo
Creo que está mal flaco, no sé. Me sale una recursividad probandolo en el swagger
Muchas gracias!!
¡Gracias a ti por ver el vídeo!
Ya entiendo la logica de springboot con mvc con @Controller como la estoy usando también spring-security pero solo me falta las relaciones de entidades estoy creando una app de cerdos. Y falta creo que las relaciones ya se como crear entidades facil
¡Espero que entonces te haya ayudado el vídeo a entender las relaciones entre entidades! Un saludo 😉✌️
App de cerdos? 🤔🤔🤔🤔
hola!! estoy teniendo problemas para persistir una clase padre con su clase hija, el ejemplo seria como el que mencionas, pero creando desde postman un {usuario[pedido1, pedido2]}
alguna ayuda?
Gracias maestro!
Me ha venido genial verlo y entederlo pero sigo manteniendo un error en mi backend. En el momento que la tabla relacionada tiene algun dato, me da error al hacer el get del user (lazy y Eager, da igual).
Puedes dejarla en el discord y te entraremos ayudar en lo que podamos :)
Hola, podrías poner cómo insertar desde postman la info de la tabla resultante del many to many?
¡Hola, gracias por comentar! En principio puedes enviar tu DTO con postman y en el backend puedes transformarlo a tu entidad y añadirlo a la lista antes de llamar al método ".save()", por ejemplo:
JSON:
{
"nombre" : "Nuevo Nombre",
"roles" : [1, 2],
}
@PutMapping("/{usuarioId}")
public void actualizarUsuario(
@PathVariable Long usuarioId,
@RequestBody UsuarioActualizarRequest usuarioActualizar
) {
final Usuario usuario = usuarioRepositorio.findById(usuarioId);
usuario.setNombre(usuarioActualizar.getNombre());
final List < Rol > roles = usuario.getRoles();
for (final Long rolId: usuarioActualizar.getRoles()) {
final Rol rolEncontrado = rolRepositorio.findById(rolId);
roles.add(rolEncontrado);
}
usuarioRepositorio.save(usuario);
}
¡Espero te sirva!
Consulta, Spring Data tiene algun proceso para encriptar los datos completos del usuario?
¡Hola! No estoy del todo seguro... tendrás que implementar por ti mismo en la capa de servicio, quizás este articulo oficial de Spring te pueda ayudar docs.spring.io/spring-security/reference/features/authentication/password-storage.html
¡Un saludo! ✌️🤓
En el caso que cada clase se contiene una a la otra con sus respectivos campos (List pedidos y Usuario usuario) en el response del getAll en el postman se llaman recursivamente. tengo la impresion que en su ejemplo como no a agregado registros de pedidos no se observa este efecto. Tengo dos clases equivalentes y utilizado las mismas anotaciones como usted lo ha explicado pero me surge ese problema que al hacer getall a la entidad equivalente a la de pedidos , como esta contiente a usuarios entonces estas llaman recusivamente. Por favor me podria ayudar a resolverlo?
Me paso lo mismo
Cuando hago la relación many to many se me crea un bucle en JSON aunque ponga el ( fetch=FetchType.LAZY), si alguien sabe porque es se lo agradecería.
Probablemente no tengas las anotaciones correctamente, échale un vistazo que estén bien 😉
Puedes usar la anotacion @JsonIgnore, en mi caso me ayudo ya que al momento de traer la clase padre se crea un bucle al momento de traer las hijas en una relacion OneToMany-ManyToOne
tengo q pausar el video 400 veces haha
¿Quizás es muy rápido? Creo que un poco si, intento hacer los vídeos explicando pero que no se alargue mucho 😅
Es cosa mia, como estoy aprendiendo tengo que pausar y devolver para asimilar. A mi en lo particular no me molesta que un video en vez de durar 10 minutos, dure 20. Algunos videos que veo duran 5 horas o así, hace poco vi uno de 9 horas xD
@@fdcendm Entiendo :), si tienes igualmente alguna pregunta, no dudes en decirmelo
oe, y si la tabla intermedia contiene atributos, como se implementaria?
Tendrías que crear tu entidad y relacionarlas tu mismo con una nueva clase :)
Buena pregunta y gracias por la respuesta jajaja. Lo estaba buscando.
como se llama ese programa?
¿Te refieres al IDE? Intellij IDEA 🤘😉
hola una pregunta es necesario colocar en ambos lados el @ManyToOne no bastaria solo con uno ???
No es necesario añadir el @OneToMany siempre y cuando no quieras que esté representado en tu entidad, pero siempre es correcto que las clases representen lo máximo posible a tus tablas en las base de datos ✌️😄
porque no muestras el @OneToOne? depaso excelente video
Sinceramente, no sé por qué pero se me olvidó, haré otro vídeo explicando @OneToOne 😅