如何用loopback 4实现链式模型而不产生Circular依赖关系

问题描述 投票:0回答:1

当模型有循环依赖关系时,Loopback会报告一个错误。我正在寻找一种方法来解决这个问题而不改变模型。

如果一个模型与自身相关,解决方案似乎是使用Getter.fromValue()。然而,当关系通过更多的模型循环时,这个解决方案似乎不是那么有用。

我们假设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>,
...

但这会导致循环依赖失败。那么问题是--如何在不改变模型依赖关系的情况下解决这个问题。

dependencies circular-dependency loopback
1个回答
0
投票

解决方案似乎是将存储库绑定为Singletons。

@bind({scope: BindingScope.SINGLETON})
export class Repository ...

默认绑定为瞬态,会触发循环依赖性检查。

© www.soinside.com 2019 - 2024. All rights reserved.