【发布时间】:2021-06-28 07:35:29
【问题描述】:
我尝试使用 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 | username |
|---|---|
| 1 | testUser |
在我的查询中我使用
this.userRepository.find({
relations: [ 'userAuth' ],
where: {
userAuth: {
username: 'testUser'
}
}
}); //this one return null data
我总是得到空数据,但如果我将用户名更改为 id 我得到正确的数据
this.userRepository.find({
relations: [ 'userAuth' ],
where: {
userAuth: {
id: 1
}
}
}); // this query return data
如果我使用查询生成器一切正常,但他们无论如何都可以使这个查询正常工作吗?
【问题讨论】:
-
您可以将 userAuthRepo 与关系用户一起使用,我有时会遇到这种情况,也许这就是关系的问题,您可以使用这些相关表中的 id 以外的其他属性。
-
你能给我举个例子吗@deko_39
-
this.userAuthRepo.find({username: 'testUser', 关系: ['user']}, )
标签: node.js database orm nestjs typeorm