在不使用查询生成器nodejs的情况下,在关系中进行typeorm搜索



我试图使用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();

你可以在这个链接参考中查看更多关于这个问题的信息

最新更新