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

194
Vistas
¿Cómo guardar la entrada en Sequelize con la relación hasOne?

Tengo una Transaction modelo con una asociación hasMany a StripePayment .

Quiero crear una nueva Transaction con un StripePayment relacionado así:

 await models.Transaction.create({ amount, stripePayment: { stripeId: paymentIntent.id, status: stripePaymentStatuses[status], clientSecret: paymentIntent.client_secret, } });

Esto crea una nueva Transacción pero no crea el stripePayment.

Mi modelo es como tal:

 // transaction model class Transaction extends Model { static associate(models) { this.hasOne(models.StripePayment, { as: 'StripePayment', foreignKey: 'id' }); } } Transaction.init( { id:{ allowNull: false, primaryKey: true, type: DataTypes.UUID, defaultValue: DataTypes.UUIDV4 }, stripePaymentId: { type: DataTypes.UUID, allowNull: true, foreignKey: true, references: { model: stripePayment, key: 'id', }, }, amount: { type: DataTypes.INTEGER, allowNull: false, } }, { sequelize, modelName: 'Transaction', } );
 // stripePayment class StripePayment extends Model { static associate(models) { this.belongsTo(models.Transaction, { as: 'Transaction', foreignKey: 'stripePaymentId' }); } } StripePayment.init( { id:{ allowNull: false, primaryKey: true, type: DataTypes.UUID, defaultValue: DataTypes.UUIDV4 }, // ... }, { sequelize, modelName: 'StripePayment', } );

Siento que el modelo no es consciente de stripePayment cuando lo paso al método de create . ¿Estoy estructurando esto correctamente?

¿Cómo puedo crear una Transaction con un StripePayment relacionado?

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Solo necesita indicar la opción de include al llamar al método de create , consulte la creación con asociaciones :

 await models.Transaction.create({ amount, // pay attention: this prop should be named exactly as an alias of a model and because it's `hasMany` you should wrap it into an array StripePayment: [{ stripeId: paymentIntent.id, status: stripePaymentStatuses[status], clientSecret: paymentIntent.client_secret, }], include: [{ model: StripePayment, as: 'StripePayment', }] });
about 4 years ago · Juan Pablo Isaza 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