node.js - Loopback : many-to-many relation, 无法反向

标签 node.js many-to-many loopbackjs

我刚刚开始使用Loopback ,并定义了两个应该由简单的多对多关系绑定(bind)的模型。

第一个模型是Customer,第二个模型是Pet

每个客户可以拥有不同的宠物,并且每个宠物可以由不同的客户拥有。

我使用loopback-cli 创建关系,并在 Customer 模型上定义它,并以 Pet 模型作为引用。代码中唯一的变化是:

/* customer.json */
"relations": {
  "Pets": {
    "type": "hasAndBelongsToMany",
    "model": "Pet",
    "foreignKey": ""
  }
}

在此之后,我找到了一组新的 REST 端点,用于资源的各种操作,例如 /customers/{customerId}/pets

如何获得关系的相反“一侧”,就 REST API 而言,该“一侧”为 /pets/{petId}/customers

我不想创建新的关系,也不想创建新的模型。我只想重用当前的 MySQL 表 CustomerPet,它已包含我需要的信息。

提前致谢

最佳答案

处理 hasAndBelongsToMany 关系的正确方法是使用 cli 工具在两个方向上创建它:

  • 宠物 hasAndBelongsToMany 客户
  • 客户 hasAndBelongsToMany 宠物

这意味着数据库中有两个不同的表:PetCustomerCustomerPet

然后,当创建两个实体之间的新关系时,REST api 会自动处理两个表。有两种方法可以做到这一点:

  • 创建一个新的相关实体,例如将新宠物发布到 /customers/{:customerId}/pets
  • 在两个现有实体之间创建引用,例如通过 PUT(空正文就足够了)到 /customers/{:customerId}/pets/rel/{:petId}

我想复制保存多对多关系的数据库表是拥有像loopback这样灵活且易于使用的工具的代价。

关于node.js - Loopback : many-to-many relation, 无法反向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52020866/

相关文章:

python - 如何在 django 的两边设置多对多字段空白=真

loopbackjs - Loopback 中的动态模型

node.js - 尝试定义强错误处理程序时发生错误TS2769(在NodeJS中使用环回框架)

node.js - 通用链接不重定向到应用商店

javascript - Promise 不按顺序执行

node.js - 将音频缓冲区从 44100 重新采样到 16000

grails - Grails上的Spring Security和带有领域的Tomcat Security

node.js - 问:所有的 promise 和一系列的 promise 似乎都不起作用

mysql - 新记录和多对多插入

mongodb - LoopBack 4 中的高级 MongoDB 运算符