typeorm is not giving nested join relations selected data while using getOne method
this.repo.createQueryBuilder("po")
.leftJoinAndSelect("po.purchaseOrderItems","poi")
.leftJoinAndSelect("poi.items","item")
.leftJoinAndSelect("po.center","center")
.leftJoinAndSelect("po.vendor","vendor")
.where(data)
.select([
"po.id",
"item.name",
])
.getOne()
this gives reasult as
{
id:number
}
expected output is
{
id:number,
purchaseOrderItems:[{
items:{
name:string
}
}]
}
same as if i execute
this.repo.createQueryBuilder("po")
.leftJoinAndSelect("po.purchaseOrderItems","poi")
.leftJoinAndSelect("poi.items","item")
.leftJoinAndSelect("po.center","center")
.leftJoinAndSelect("po.vendor","vendor")
.where(data)
.getOne()
for which result i get
{
id:number,
purchaseOrderItems:[{
items:{
name:string
}
}]
}
When you use select
you have to add associate relation column in the fields. You can try this
this.repo.createQueryBuilder("po")
.leftJoinAndSelect("po.purchaseOrderItems","poi")
.leftJoinAndSelect("poi.items","item")
.leftJoinAndSelect("po.center","center")
.leftJoinAndSelect("po.vendor","vendor")
.where(data)
.select([
"po.id",
"poi", //added
"item.name",
])
.getOne()