gpt4 book ai didi

node.js - 如何在 sequelize 中更新事务中的关联模型

转载 作者:行者123 更新时间:2023-12-03 22:32:51 25 4
gpt4 key购买 nike

我有 2 张 table ,专家和行业。每个专家属于多个行业,如何在交易中更新?
我知道 setter 方法可以在没有事务的情况下更新关联,我需要它执行得更健壮。


Expert.belongstoMany(Industry,{through:"expert_industry"})


async function updateExpert(data) {
const expert = await Expert.findByPk(data.id, {
include: [
{
model: Industry,
through: {
attributes: []
}
}
]
})

const industries = Industry.findAll({
where: {
id: data.industry_id
}
})

expert.setIndustry(industries)

// Here I want update expert and its industry in a transcation, How to do it ?
return sequelize.transaction(t => {
// The sql to insert or delete table expert_industry doesn't appear in this transcation
// and I don't know which should be the owner of update function, Expert(model) or the expert(instance)?
return Expert.update(data, {transaction: t})
})

}

最佳答案

你的问题有点模棱两可,我没有完全理解你想用 indusries 做什么,因为它没有做任何事情。但我得到了更新部分。
我认为您应该查询两次,一次用于更新专家模型,另一次用于行业。
试试这个,


return sequelize.transaction(t => {
try{
await Expert.update(data, { transaction: t })
//you should add where option, otherwise your whole rows are gonne be updated

await Industry.update(data, { transaction: t, where : { expertId : data.id } })
//expertId should be your foreign key
}
catch(e){
throw e
}
})

关于node.js - 如何在 sequelize 中更新事务中的关联模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65213282/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com