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"
})
}
类似的方法适用于任何类型的关联。我知道这似乎不是最方便的事情。
在 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"
})
}
类似的方法适用于任何类型的关联。我知道这似乎不是最方便的事情。