【发布时间】:2021-04-11 01:33:38
【问题描述】:
我有一个问题,我无法获取 Typeorm 返回的所有数据。
这里是相关实体。
媒体实体:
@Entity()
export class Media {
@PrimaryGeneratedColumn()
id: number;
@Column('text')
type: string;
}
类别实体:
@Entity()
export class Category {
@PrimaryGeneratedColumn()
id: number;
@OneToMany((type) => Model, (model) => model.category)
models: Model[];
@ManyToMany(() => Media, { cascade: true })
@JoinTable()
medias: Media[];
}
模型实体:
@Entity()
export class Model {
@PrimaryGeneratedColumn()
id: number;
@Column()
manufacturer: string;
....
@ManyToOne(() => Category, (category) => category.models)
category: Category;
@ManyToMany(() => Media, { cascade: true })
@JoinTable()
medias: Media[];
}
当我执行这段代码时:
const getOneCategory: Category = await this.categoryRepository
.createQueryBuilder('category')
.leftJoinAndSelect('category.medias', 'media')
.leftJoinAndSelect('category.models', 'model')
.getOne();
返回
{
"id": 1,
"name": "Luxury",
"medias": [
{
"id": 1,
"type": "image",
"url": "images/car-categories/luxury.png"
},
{
"id": 2,
"type": "the boy on fireeeeeeee",
"url": "httpezdths:/whjrbfkjaberkjPokemonssss"
}
],
"models": [
{
"id": 2,
"manufacturer": "Lamborghini1",
"model": "Aventador1",
"shortName": "Aventador1",
"zeroToHundred": "3.53",
"transmission": "AMT1",
"driveTrain": "AWD1",
"topSpeed": 3203,
"engine": "2.9L1"
// THE MEDIA ATTRIBUTE is MISSING
},
]
}
模型对象键中缺少media 属性。我想像这样在model 对象键中获取媒体数组
...
models: [{
"id": 1,
"manufacturer": "Lamborghini1",
"model": "Aventador1",
"shortName": "Aventador1",
"zeroToHundred": "3.53",
"transmission": "AMT1",
"driveTrain": "AWD1",
"topSpeed": 3203,
"engine": "2.9L1",
"medias": [ //I WANT TO GET THIS VALUE AS WELL
{
"id": 3,
"type": "jasretdhsdfl1",
"url": "httpezdths://wsrg1111111"
}
]
},]
...
感谢任何帮助。
【问题讨论】:
标签: mysql node.js nestjs typeorm