通过共同关系获取实体

时间:2020-10-26 11:45:45

标签: nestjs typeorm

我有三个实体-公司用户访问组。我需要将用户访问权限限制为具有访问组的公司。

用户和访问组数量很多,公司和访问组数量很多。

例如,用户' Murphy '与访问组' Detroit '和' Delta-City 和公司'有关联OCP ”与访问组“底特律”相关。

如何提取与用户具有相同访问组的公司?

1 个答案:

答案 0 :(得分:1)

我找到了解决方案,应该使用TypeORM查询生成器。

首先,获取与用户相关的访问组ID。 例如,假设用户 Murphy 包含在agIds: [1, 2]的访问组中。 然后,我们可以使用该查询获取用户有权访问的所有公司:

this.companiesRepository.createQueryBuilder('company')
.innerJoin('company.accessgroups', 'accessgroup', 'accessgroup.id IN (:...ids)', {ids: agIds})
.getMany();