我一直试图定义3个表之间的关系,然后在一个create函数中全部创建它们。由于某些原因,在创建3个模型时,链接ID(外键)是未定义的并且没有传递。这是关联:
Person.js:
...
SELECT *
FROM
(SELECT uuid_generate_v4(),
(SELECT pc.product_configuration_id
FROM product_configuration pc
WHERE pc.configuration_key = configKey),
entId as eId, enterpriseValue) AS tmp -- here
WHERE NOT EXISTS
(SELECT e.enterprise_configuration_id
FROM enterprise_configuration e
WHERE e.enterprise_id = entId AND e.product_configuration_id =
(SELECT p.product_configuration_id
FROM product_configuration p
WHERE p.configuration_key = configKey));
...
Lead.js:
models.person.Lead = models.person.hasMany(models.lead, {
onDelete: "CASCADE",
foreignKey: "person_id"
});
sealantCustomer.js:
models.lead.Person = models.lead.belongsTo(models.person, {foreignKey: 'person_id'});
models.lead.Sealant_customer = models.lead.hasOne(models.sealant_customer, {
onDelete: "CASCADE",
foreignKey: 'lead_id'
})
构建函数:
models.sealant_customer.Lead = models.sealant_customer.belongsTo(models.lead);
除了lead_id和person_id为null的事实之外,输出的对象是好的(每个模型都有自己的ID,但没有关联的模型的ID)。我还应该注意,没有验证错误,并且数据很好。
答案 0 :(得分:0)
据我所知,该库在build函数中存在一个错误。与create相同的语法效果很好。
答案 1 :(得分:0)
在 Sequelize v6 中,包含部分中的关联标识符无效。否则,这个构建函数应该可以正常工作。