本文介紹了Typeorm 不返回所有數據的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!
問題描述
限時送ChatGPT賬號..
我遇到了無法獲取 Typeorm 返回的所有數據的問題.
I have an issue where I could not get all of the data returned by 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
對象鍵中的媒體數組
The media
attribute is missing from the model object key. I would like to get the array of media in the model
object key like this
...
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"
}
]
},]
...
感謝任何幫助.
推薦答案
通過添加模型和媒體之間的連接,您可以獲得想要的結果:
You get the wanted result by adding the join between model and media :
const getOneCategory: Category = await this.categoryRepository
.createQueryBuilder('category')
.leftJoinAndSelect('category.medias', 'media')
.leftJoinAndSelect('category.models', 'model')
.leftJoinAndSelect('model.medias', 'medias') // this line
.getOne();
這篇關于Typeorm 不返回所有數據的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!
【網站聲明】本站部分內容來源于互聯網,旨在幫助大家更快的解決問題,如果有圖片或者內容侵犯了您的權益,請聯系我們刪除處理,感謝您的支持!