代码之家  ›  专栏  ›  技术社区  ›  Jan Bodnar

续集-有双向关联吗?

  •  0
  • Jan Bodnar  · 技术社区  · 8 年前

    在续集的文档中 http://docs.sequelizejs.com/ 我没有看到任何关于模型之间双向关联的引用,正如我们从Java的Hibernate或PHP的理论中所知道的那样。

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

    1 回复  |  直到 8 年前
        1
  •  2
  •   slysterous    8 年前

    这取决于你说的“开箱即用”是什么意思。

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

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

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

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