TypeORM:发出具有关联关系和位置的选择请求

时间:2019-01-20 13:27:00

标签: typeorm

我使用NestJS和ORM TypeORM做一个API

我有实体:

用户

RelationshipType

UserRelationshipType(具有用户和RelationshipType外键)

和关系(使用userRelationshipType ForeignKey)

并且需要查找所有关系,但是要来自特定用户 所以我需要在某个地方声明“ 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}}}

});

那是行不通的...但是在文档中却说要这样做... 我可以找到所有的东西,但是可以在where条件(或join condition)中应用良好 你有主意吗?

我也尝试了加入,但是我有点迷路了

谢谢:)

1 个答案:

答案 0 :(得分:0)

如果使用类验证器,则可以轻松实现。.

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


这是给你的例子

 @Exclude()
    @Column({ name: 'password' })
    public password: string;