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/...
  • НаукаНаука

Комментарии • 48

  • @programando_en_java
    @programando_en_java  Год назад +2

    🔔 ¡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

  • @davidmarbello6800
    @davidmarbello6800 27 дней назад

    Referencia circular en la entidad JPA - Spring Boot, Ojala hagas un video de esto...

  • @JonnathanSaquicela
    @JonnathanSaquicela Месяц назад

    Muchas gracias hermano, me ayudaste a entender full

  • @bambino3821
    @bambino3821 4 месяца назад +1

    sos un genio pela, gracias

  • @user-vu7fs3mf7b
    @user-vu7fs3mf7b 8 месяцев назад +1

    Excelente video , me vino bien para entender las relaciones en java con JPA

  • @miqueldebon5851
    @miqueldebon5851 Год назад +1

    Excelente vídeo, muchas gracias por el vídeo! Estoy aprendiendo mucho con tu canal de verdad!!

    • @programando_en_java
      @programando_en_java  Год назад

      ¡Espero que aprendas mucho por aquí, me alegro que te guste el canal! :)

  • @OscarMG14
    @OscarMG14 11 месяцев назад

    Wow que bien explicado, me sirvió mucho, gracias!

  • @sandrocordova8730
    @sandrocordova8730 3 месяца назад

    muchas gracias crack me ayudaste un monton

  • @erichivan5419
    @erichivan5419 Год назад +4

    Faltaria el cascade=ALL y el removeOnTrue y seria completa pero fue execelente la explicacion ricardo 😎

    • @programando_en_java
      @programando_en_java  Год назад +1

      ¡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 :)

  • @jaimealbertorocha5961
    @jaimealbertorocha5961 Год назад +1

    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.

    • @programando_en_java
      @programando_en_java  Год назад +1

      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 😁

  • @cmdv
    @cmdv Год назад +2

    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.

    • @programando_en_java
      @programando_en_java  Год назад

      ¡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

  • @EmprendeRicoEmprendePobre
    @EmprendeRicoEmprendePobre 8 месяцев назад +1

    Hola, tu video me ha ayudado un montón. Gracias

  • @user-bt2xb3kc4o
    @user-bt2xb3kc4o 3 месяца назад +1

    Creo que está mal flaco, no sé. Me sale una recursividad probandolo en el swagger

  • @Johnlb91
    @Johnlb91 Год назад +1

    Muchas gracias!!

  • @danielcardenas4879
    @danielcardenas4879 8 месяцев назад +2

    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

    • @programando_en_java
      @programando_en_java  8 месяцев назад

      ¡Espero que entonces te haya ayudado el vídeo a entender las relaciones entre entidades! Un saludo 😉✌️

    • @pepito7773
      @pepito7773 Месяц назад

      App de cerdos? 🤔🤔🤔🤔

  • @wakalateca
    @wakalateca 5 месяцев назад

    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!

  • @pratchett3527
    @pratchett3527 6 месяцев назад +1

    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).

    • @programando_en_java
      @programando_en_java  6 месяцев назад

      Puedes dejarla en el discord y te entraremos ayudar en lo que podamos :)

  • @mei_dep9898
    @mei_dep9898 7 месяцев назад +1

    Hola, podrías poner cómo insertar desde postman la info de la tabla resultante del many to many?

    • @programando_en_java
      @programando_en_java  7 месяцев назад

      ¡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!

  • @sebastianrojasm.506
    @sebastianrojasm.506 2 месяца назад +1

    Consulta, Spring Data tiene algun proceso para encriptar los datos completos del usuario?

    • @programando_en_java
      @programando_en_java  2 месяца назад

      ¡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! ✌️🤓

  • @eleafarpan
    @eleafarpan 2 месяца назад

    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?

  • @victorm3962
    @victorm3962 8 месяцев назад +1

    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.

    • @programando_en_java
      @programando_en_java  8 месяцев назад

      Probablemente no tengas las anotaciones correctamente, échale un vistazo que estén bien 😉

    • @Erickgarcia-pc8lx
      @Erickgarcia-pc8lx 5 месяцев назад

      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

  • @fdcendm
    @fdcendm 6 месяцев назад +1

    tengo q pausar el video 400 veces haha

    • @programando_en_java
      @programando_en_java  6 месяцев назад +1

      ¿Quizás es muy rápido? Creo que un poco si, intento hacer los vídeos explicando pero que no se alargue mucho 😅

    • @fdcendm
      @fdcendm 6 месяцев назад +1

      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

    • @programando_en_java
      @programando_en_java  6 месяцев назад

      @@fdcendm Entiendo :), si tienes igualmente alguna pregunta, no dudes en decirmelo

  • @alexdev__
    @alexdev__ Год назад +1

    oe, y si la tabla intermedia contiene atributos, como se implementaria?

    • @programando_en_java
      @programando_en_java  Год назад +1

      Tendrías que crear tu entidad y relacionarlas tu mismo con una nueva clase :)

    • @danielstanciu7438
      @danielstanciu7438 3 месяца назад

      Buena pregunta y gracias por la respuesta jajaja. Lo estaba buscando.

  • @jeansanchezsobrino736
    @jeansanchezsobrino736 8 месяцев назад +1

    como se llama ese programa?

  • @HackZ2266
    @HackZ2266 5 месяцев назад +1

    hola una pregunta es necesario colocar en ambos lados el @ManyToOne no bastaria solo con uno ???

    • @programando_en_java
      @programando_en_java  5 месяцев назад +1

      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 ✌️😄

  • @agustinibarrola8931
    @agustinibarrola8931 Год назад +1

    porque no muestras el @OneToOne? depaso excelente video

    • @programando_en_java
      @programando_en_java  Год назад +1

      Sinceramente, no sé por qué pero se me olvidó, haré otro vídeo explicando @OneToOne 😅