续集-是否存在双向关联?

时间:2018-10-24 12:45:33

标签: javascript orm associations sequelize.js

在Sequelize ORM http://docs.sequelizejs.com/的文档中,正如我们从Java的Hibernate或PHP的学说中所知,我看不到任何模型之间的双向关联引用。

那么,Sequelize不支持双向关联吗?

1 个答案:

答案 0 :(得分:1)

这取决于您开箱即用的意思。

通过在每个模型上定义两个单一关联,可以实现Sequelize中的双向关联。据我所知,没有其他办法。

例如我们有一个用户模型和一个后期模型。 Post模型持有来自名为UserId的用户的外键,这是一对多的关联。要双向实现此目标,您应该在用户模型以及以下发布模型上添加关联。

User.associate = function(models) {
    models.User.hasMany(models.Post, {
        foreignKey:"UserId"
    })
}

Post.associate = function(models)  {
    models.Post.belongsTo(models.User, {
        foreignKey:"UserId"
    })
}

类似的方法适用于任何类型的关联类型。我知道这似乎不是最方便的事情。