类型ORM:提出具有关系和位置的选择请求



>我用NestJS和ORM TypeORM做一个API

我有实体:

用户

关系类型

用户关系类型

(具有用户和关系类型外键)

和关系(与用户关系类型外键)

并且需要找到所有的关系,但来自特定的用户所以我需要在某个地方声明"user.id = id"

我已经用createQueryBuilder做到了这一点

this.repo
    .createQueryBuilder('relationship')
    .innerJoinAndSelect(
      'relationship.userRelationshipType',
      'userRelationshipType',
    )
    .innerJoinAndSelect(
      'userRelationshipType.user',
      'user',
      'user.id = :id',
      { id: id },
    )
    .innerJoinAndSelect(
      'userRelationshipType.relationshipType',
      'relationshipType',
    )
    .getMany()

这是工作但我不高兴,因为我想用 .find 或 findOne 完成我的所有请求

当我在做

this.repo.find({
  relations: [
    'userRelationshipType',
    'userRelationshipType.user',
    'userRelationshipType.relationshipType',
  ],
  where: {userRelationshipType: {user: {id: id}}}
});

那不行...但是在文档中据说要这样做...我可以找到所有内容,但可以应用好的地方条件(或加入条件)你有什么想法吗?

我也尝试过加入,但我有点迷茫

谢谢:)

如果你使用类验证器,那么你可以很容易地做到这一点。

-

->提供两个表之间的关系。
--> @exclude您不想在模型中选择的字段是什么。
-->别忘了提到导入类验证器包。
谢谢。


这里的例子给你
 @Exclude()
    @Column({ name: 'password' })
    public password: string;

最新更新