Sequelize hasOne将不允许多行共享相同的关系
我遇到了使用Postgres驱动程序的sails.js问题:
"dependencies": { "sequelize": "^1.7.0", "pg": "^3.0.3" }
我有一个活动模型,与2个模型有一个hasOne关系,属于另一个:
classMethods: { associate: function(models) { Activity.hasOne(models.Model2); Activity.hasOne(models.Model3); Activity.belongsTo(models.User); } }
我遇到的问题是我似乎无法创build共享相同的Model2或Model3行/实例的2个活动实例。 我宣布第一个:
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的引用,只有最新的行/实例包含该引用。
这是令人费解的function? 这是我的缺乏理解或错误?
我会在评论中提供我们想出的答案。 OP实际上想要的是belongsTo
他的所有协会。
belongsTo
在Sequelize中添加外键的同时hasOne
在目标上添加外键。
hasOne
实际上很less使用,可能是由于api的改变。