Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

141
Vistas
La actualización de Sequelize One to Many Association no funcionará

Así es como mis dos modelos están conectados:

 DebitInvoice.hasMany(DebitInvoiceProduct, { onDelete: 'CASCADE', onUpdate: 'CASCADE', foreignKey: 'invoice_serial' }); DebitInvoiceProduct.belongsTo(DebitInvoice,{ foreignKey: 'serial' });

Estoy tratando de actualizar DebitInvoice y, al hacerlo, también necesito eliminar las filas anteriores de DebitInvoiceProduct y agregar otras nuevas. Es por eso que estoy usando onUpdate: 'CASCADE' . Estoy intentando con este código:

 const result = await DebitInvoice.update({ invoice_for: 'data', invoice_date: 'data', /* other fields */ DebitInvoiceProducts: productList, },{ where: {serial: 'data'} }, include: [DebitInvoiceProduct] );

Puedo actualizar los campos de DebitInvoice pero no sucede nada en DebitInvoiceProduct

¿Dónde estoy haciendo mal o qué debo hacer para obtener lo que necesito?

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

la update no tiene la opción de include , por lo que debe llamar a setDebitInvoiceProducts para cada instancia del modelo DebitInvoice o llamar a destroy y create en DebitInvoiceProducts :

 const invoices = await DebitInvoice.findAll({ where: {serial: 'data'} }); for (const invoice of invoices) { const invoiceProducts = productList.filter(x => <here are conditions to get product list for a certain invoice>) await invoice.setDebitInvoiceProducts(invoiceProducts) }

O

 const invoices = await DebitInvoice.findAll({ where: {serial: 'data'} }); await DebitInvoiceProducts.destroy({ where: { invoiceId: { [Op.in]: invoices.map(x => x.id) } } }) for (const invoice of invoices) { await DebitInvoiceProducts.bulkCreate(productList.map(x => ({ productId: x.id, invoiceId: invoice.id }))) }
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda