rim*_*lin 5 javascript typescript typeorm
如何正确获取嵌套实体?例如,我进行以下查询:
const houseId = 1;
const userId = 1;
const house = await this.houseRepository.findOne({
id: houseId,
}, {
where: {
project: {
user: {
id: userId,
}
}
},
relations: ['project', 'project.user']
});
Run Code Online (Sandbox Code Playgroud)
结果,house变量包含project实体,但project不包含user。如何user纳入project?据我从文档中了解到,实体user中的属性project被声明为惰性属性,如果我想获取它,我应该解决它:
const user = await house.project.user;
console.log(user);
-> undefined
Run Code Online (Sandbox Code Playgroud)
但是解析user在控制台中给出了未定义,特别是因为它在解析之前未定义。
房屋实体类:
@Entity('house')
export class HouseEntity {
@PrimaryGeneratedColumn()
id: number;
@Column()
name: string;
@ManyToOne(type => ProjectEntity, { eager: true })
project: ProjectEntity;
}
Run Code Online (Sandbox Code Playgroud)
项目实体类:
@Entity('project')
export class ProjectEntity {
@PrimaryGeneratedColumn()
id: number;
@Column()
name: string;
@ManyToOne(type => UserEntity, user => user.projects)
user: UserEntity;
}
Run Code Online (Sandbox Code Playgroud)
用户实体类:
@Entity('user')
export class UserEntity {
@PrimaryGeneratedColumn()
id: number;
@Column()
first_name: string;
@OneToMany(type => ProjectEntity, project => project.user)
projects: ProjectEntity[];
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7060 次 |
| 最近记录: |