Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
2
respuestas

al insertar datos no guarda la llave foranea

Al momento de insertar los datos en la base de datos se guarda toda la informacion a excepcion de la llave foraner pone null Ingrese aquí la descripción de esta imagen para ayudar con la accesibilidadIngrese aquí la descripción de esta imagen para ayudar con la accesibilidad

mis clases entidad son: Ingrese aquí la descripción de esta imagen para ayudar con la accesibilidad

Ingrese aquí la descripción de esta imagen para ayudar con la accesibilidad

obteniendo los datos de la API de Gutendex muestro el codigo donde guardo la informacion Ingrese aquí la descripción de esta imagen para ayudar con la accesibilidad

muestro la informacion en consola

Ingrese aquí la descripción de esta imagen para ayudar con la accesibilidad

Ayuda porfa para poder guardar la llave foranea en la table autor y que no aparezca null

2 respuestas

Hola Daniel, espero que estés bien!

¿Ha intentado utilizar el fetch (en la clase Libros) en modo EAGER?

Diferencia entre LAZY y EAGER en Spring Data JPA

En Spring Data JPA, la carga de entidades (fetch) es un aspecto crucial para optimizar el rendimiento y reducir el número de consultas a la base de datos.

Las dos estrategias principales de carga son LAZY y EAGER:

  1. Carga LAZY: La entidad principal se carga de la base de datos, pero las entidades relacionadas no se cargan automáticamente.

Cuándo usar:

  • Solo se necesita la entidad principal y no hay necesidad inmediata de acceder a las entidades relacionadas.
  • La carga de las entidades relacionadas puede generar muchas consultas adicionales, impactando el rendimiento.
  • Es posible cargar las entidades relacionadas posteriormente, si es necesario, utilizando métodos específicos.
  • Ejemplo: Un pedido con artículos. Al buscar el pedido con LAZY, solo se cargan los datos del pedido. Los artículos del pedido solo se cargarán si se accede a ellos explícitamente.
  1. Carga EAGER: La entidad principal y todas las entidades relacionadas se cargan de la base de datos en la misma consulta.

Cuándo usar:

  • Es necesario usar las entidades relacionadas inmediatamente después de cargar la entidad principal.
  • La carga anticipada puede reducir el número de consultas posteriores, pero puede aumentar el tiempo de respuesta inicial.
  • Es útil cuando la relación entre las entidades es obligatoria y las entidades relacionadas siempre se utilizan juntas.
  • Ejemplo: Un pedido con artículos. Al buscar el pedido con EAGER, se cargarán los datos del pedido y todos los artículos del pedido en la misma consulta.

Recomendaciones:

  • Use LAZY como predeterminado: La carga LAZY es generalmente más eficiente y evita consultas innecesarias.
  • Use EAGER cuando sea necesario: Si necesita las entidades relacionadas inmediatamente, use EAGER para evitar consultas adicionales.
  • Considere el impacto en el rendimiento: Evalúe el impacto en el rendimiento en diferentes escenarios para elegir la estrategia de carga ideal.
  • Utilice técnicas de optimización: Utilice técnicas como fetch join y batch fetching para optimizar la carga de entidades en casos específicos.

Recursos Adicionales:

¡Saludos y buenos estudios!

Hola Brenda buena tarde gracias por la información

Respecto al comentario de utilizar EAGER en vez de LAZY si también ya lo he provado pero sigue el mismo resultado sigue sin ponerme el id