Sequelize - 是否存在双向关联?

Sequelize - are there bidirectional associations?

在 Sequelize ORM 的文档中 http://docs.sequelizejs.com/ 我没有看到任何关于模型之间双向关联的参考,正如我们从 Java 的 Hibernate 或 PHP 中了解到的那样教义。

那么,Sequelize 不支持开箱即用的双向关联?

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

Sequelize 中的双向关联是通过在每个相应模型上定义两个单一关联来实现的。据我所知没有别的办法。

例如。我们有一个用户模型和一个 Post 模型。 Post 模型持有一个来自 User 的名为 UserId 的外键,这是一个一对多的关联。要双向实现这一点,您应该在用户模型和 Post 模型上添加关联,如下所示。

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

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

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