【发布时间】:2019-02-05 16:27:02
【问题描述】:
我有 2 个 A 和 B 类,3 个表 A、B 和 AB
A.belongsToMany(B,as:'Bs', through: models.AB)
B.belongsToMany(A,as:'As', through: models.AB)
到目前为止,这些关联都在工作,我能够获取包含 B 的 A,反之亦然。
当我尝试创建 A 时,我正在发送包含所选 B 值的 JSON。 我的 JSON:
{
"name" : "A"
"Bs": [
{"id_B" : 1},
{"id_B" :2},
{"id_B" :3}
]
}
我插入行的代码是:
A= await models.A.build(req.body,
{
transaction:transaction,
include:[
{ as:'Bs',required:true,model:models.B},
]
}
)
我期望的结果是 sequelize 使用提供的 id 和新创建的 id_A 在 AB 表中创建行,但它试图在表 B 中创建行 id_B 并由于其他属性而失败为空。
我已经搜索了很长时间并尝试了多种解决方案,我知道我可以通过两个步骤来做到这一点:
1)创建一个
2)A.addB()
问题:
1) 可以一步完成吗?
2) 我的 JSON 有问题还是根本不可能?
【问题讨论】:
-
我认为在构建期间不可能创建关联。你必须先创建
A然后setB -
是的,我认为现在就是这种情况......我没有找到任何其他方式
-
那么,您是在尝试关联现有的
B还是创建一个新的B?
标签: node.js express sequelize.js