如何在没有循环依赖的情况下使用 loopback 4 实现链式模型
How to implement chained models with loopback 4 without getting a Circular dependency
当模型具有循环依赖时,Loopback 会报错。我正在寻找一种在不更改模型的情况下解决问题的方法。
如果模型与自身相关,则解决方案似乎使用 Getter.fromValue()。但是,当关系通过更多模型循环时,此解决方案似乎不太有用。
一个包含三个模型 A、B 和 C 的示例。让我们假设 A 引用 B,B 引用 C,C 引用 A。那么按照 LB4 文档,存储库将如下所示:
Repository A:
constructor(
@repository(BRepo) private bGetter: Getter<BRepo>,
...
Repository B:
constructor(
@repository(CRepo) private cGetter: Getter<CRepo>,
...
Repository C:
constructor(
@repository(ARepo) private aGetter: Getter<ARepo>,
...
但这会导致循环依赖失败。所以问题是 - 如何在不更改模型依赖项的情况下解决此问题。
解决方案似乎将存储库绑定为单例
@bind({scope: BindingScope.SINGLETON})
export class Repository ...
默认绑定是触发循环依赖性检查的瞬态。
当模型具有循环依赖时,Loopback 会报错。我正在寻找一种在不更改模型的情况下解决问题的方法。
如果模型与自身相关,则解决方案似乎使用 Getter.fromValue()。但是,当关系通过更多模型循环时,此解决方案似乎不太有用。
一个包含三个模型 A、B 和 C 的示例。让我们假设 A 引用 B,B 引用 C,C 引用 A。那么按照 LB4 文档,存储库将如下所示:
Repository A:
constructor(
@repository(BRepo) private bGetter: Getter<BRepo>,
...
Repository B:
constructor(
@repository(CRepo) private cGetter: Getter<CRepo>,
...
Repository C:
constructor(
@repository(ARepo) private aGetter: Getter<ARepo>,
...
但这会导致循环依赖失败。所以问题是 - 如何在不更改模型依赖项的情况下解决此问题。
解决方案似乎将存储库绑定为单例
@bind({scope: BindingScope.SINGLETON})
export class Repository ...
默认绑定是触发循环依赖性检查的瞬态。