gpt4 book ai didi

node.js - Sequelize hasOne 将不允许多行共享相同的关系

转载 作者:行者123 更新时间:2023-11-29 13:02:57 25 4
gpt4 key购买 nike

我在使用 Postgres 驱动程序时遇到 sails.js 问题:

"dependencies": {
"sequelize": "^1.7.0",
"pg": "^3.0.3"
}

我有一个 Activity 模型,它与 2 个模型具有 hasOne 关系并且属于另一个模型:

classMethods: {
associate: function(models) {
Activity.hasOne(models.Model2);
Activity.hasOne(models.Model3);
Activity.belongsTo(models.User);
}
}

我遇到的问题是我似乎无法创建 2 个共享相同 Model2 或 Model3 行/实例的事件实例。我宣布第一个:

Activity.create({}).complete(function(err, activity) {
if(err) throw err;
activity.setUser(User_Instance_X)
activity.setModel2(Model2_Instance_X);
activity.setModel3(Model3_Instance_X);
activity.save().complete(db_save_cb);
}

如果我随后声明另一个,使用相同的 Model2 和 Model3 实例但使用不同的用户,那么第一行/实例不再包含对 Model2 和 3 的引用,只有最新的行/实例包含该引用。

这是令人费解的功能?是我理解不够还是bug?

最佳答案

我会在评论中提供我们找到的答案。 OP 真正想要的是 belongsTo 所有关联。

belongsTosource 上添加外键,而 hasOnetarget 上添加外键.

hasOne 实际上很少使用,可能是由于 api 更改。

关于node.js - Sequelize hasOne 将不允许多行共享相同的关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23658598/

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