javascript - Sequelize - 是否有双向关联?
问题描述
在 Sequelize ORM http://docs.sequelizejs.com/的文档中,我没有看到对模型之间双向关联的任何引用,正如我们从 Java 的 Hibernate 或 PHP 的 Doctrine 中所知道的那样。
那么,Sequelize 不支持开箱即用的双向关联?
解决方案
这取决于您所说的开箱即用的含义。
Sequelize 中的双向关联是通过在每个模型上定义两个单一关联来实现的。据我所知,没有其他办法。
例如。我们有一个用户模型和一个帖子模型。Post 模型持有一个来自 User 的名为 UserId 的外键,这是一个一对多的关联。要双向实现这一点,您应该在 User Model 和 Post 模型上添加一个关联,如下所示。
User.associate = function(models) {
models.User.hasMany(models.Post, {
foreignKey:"UserId"
})
}
Post.associate = function(models) {
models.Post.belongsTo(models.User, {
foreignKey:"UserId"
})
}
类似的方法适用于任何类型的关联类型。我知道这似乎不是最方便的事情。
推荐阅读
- excel - 如果满足条件,是否可以在 excel 中对 3 个单元格运行匹配并返回“true”值?
- huawei-mobile-services - HMS核心站点套件是否必须启用计费
- javascript - Issues with autorole using Quick.db (Discord.js)
- java - 保存广度优先搜索Java中遍历的边
- google-cloud-platform - GCP CloudRun 上的服务 URL 可以别名吗?
- json - 如何在 json 对象内使用带有 null json 数组的 JSON_QUERY?
- angular - 角度检测鼠标左键单击和鼠标右键单击
- postgresql - Postgresql 中是否有大数和长小数的数据类型?
- javascript - 使用 webpack 构建时未定义 zlib.brotliCompress / zlib.brotliUncompress
- mongodb - 是否可以将 $near 与 $in 一起使用?