我的应用程序中有三个实体,如下所示:
class Machine{
id
site_id
contract_id
client_id
}
class Site{
id
}
class Contract{
id
}
有一个名为 Machine
的实体,它与 one_to_many
有 Contract
关系,另一个与另一个名为 one_to_many
的实体有 Site
关系。 Site
和 Contracts
之间没有直接关系,它们之间不存在联结表,但 Machine
与 Site
和 Contract
以及 {{1} } 在这些实体之间很常见,并且在 99% 的情况下都能正常工作。
现在业务要求新的东西,它需要用户的合同列表,每个合同都应该有站点列表,站点有机器列表。拥有原始 SQL 查询或可以应用于 client_id
查询构建器的解决方案会很棒。我应该提一下,在 TypeOrm
和 Site
之间建立多对多关系并不是我想要的,因为它给我的案例带来了一些复杂性。
答案 0 :(得分:0)
机器可以用作中间的连接台 所以在代码中我们可能会定义一个像下面这样的关系
class site{
id
@ManyToMany(type=>Contract,contract=>contract.sites)
contracts:Contract[]
}
class Contract{
id
@ManyToMany(type=>Site,site=>site.contracts)
@JoinTable({name:"machine"})
sites:Site[]
}