Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

195
Visualizações
¿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 Respostas
Responde à pergunta

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda