我使用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)中应用良好 你有主意吗?
我也尝试了加入,但是我有点迷路了
谢谢:)
答案 0 :(得分:0)
如果使用类验证器,则可以轻松实现。.
->提供两个表之间的关系。
->为您不想在模型中选择的字段提供@exclude。
->不要忘了提到导入类验证程序包。
谢谢。
@Exclude()
@Column({ name: 'password' })
public password: string;