Nestjs 通过公共关系获取实体

Nestjs 通过公共关系获取实体,nestjs,typeorm,Nestjs,Typeorm,我有三个实体-公司,用户,访问组。我需要限制用户访问具有AccessGroup的公司 用户和访问组是多对多,公司和访问组是多对多 例如,用户“Murphy”与Accessgroup“Detroit”和“Delta City”有关系,而公司“OCP”与Accessgroup“Detroit”有关系 我如何才能提取与用户具有相同访问组的公司?我找到了解决方案,应该使用TypeORM查询生成器 首先,获取用户与之相关的accessgroups ID。 例如,假设用户Murphy包含在带有agid:[1

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

用户和访问组是多对多,公司和访问组是多对多

例如,用户“Murphy”与Accessgroup“Detroit”和“Delta City”有关系,而公司“OCP”与Accessgroup“Detroit”有关系


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

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

首先,获取用户与之相关的accessgroups ID。 例如,假设用户Murphy包含在带有
agid:[1,2]
的accessgroups中。 然后,我们可以通过此查询获取用户有权访问的所有公司:

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