我试图使用typeorm搜索一些相关字段这是我的UserEntity
@OneToOne(() => UserAuth, userAuth => userAuth.user, {
eager: true,
cascade: true,
onDelete: 'CASCADE',
})
@JoinColumn({name:'id'})
userAuth?: UserAuth;
在UserAuthEntity中,我有
@PrimaryGeneratedColumn()
id!: number;
@Column()
username: string;
@OneToOne(() => UserEntity, user => user.UserAuth)
@JoinColumn({ name: 'user_id' })
user?: UserEntity;
数据库中的示例数据
id | 用户名 |
---|---|
1 | 测试用户 |
看起来find/findOne不允许通过嵌套关系属性进行筛选。
您应该使用QueryBuilder
。
检查下面的示例代码:
const username = 'testUser';
await this.ormRepository
.createQueryBuilder("userEntity")
.innerJoinAndSelect("userEntity.userAuth", "userAuth")
.where("userAuth.username= :username", { username })
.getMany();
你可以在这个链接参考中查看更多关于这个问题的信息