typeorm select 嵌套连接关系字段
typeorm select nested join relation fields
typeorm 在使用 getOne 方法时没有给嵌套连接关系选择的数据
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()
结果为
{
id:number
}
预期输出是
{
id:number,
purchaseOrderItems:[{
items:{
name:string
}
}]
}
和我执行的一样
this.repo.createQueryBuilder("po")
.leftJoinAndSelect("po.purchaseOrderItems","poi")
.leftJoinAndSelect("poi.items","item")
.leftJoinAndSelect("po.center","center")
.leftJoinAndSelect("po.vendor","vendor")
.where(data)
.getOne()
我得到的结果
{
id:number,
purchaseOrderItems:[{
items:{
name:string
}
}]
}
当您使用select
时,您必须在字段中添加关联关系列。你可以试试这个
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()
typeorm 在使用 getOne 方法时没有给嵌套连接关系选择的数据
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()
结果为
{
id:number
}
预期输出是
{
id:number,
purchaseOrderItems:[{
items:{
name:string
}
}]
}
和我执行的一样
this.repo.createQueryBuilder("po")
.leftJoinAndSelect("po.purchaseOrderItems","poi")
.leftJoinAndSelect("poi.items","item")
.leftJoinAndSelect("po.center","center")
.leftJoinAndSelect("po.vendor","vendor")
.where(data)
.getOne()
我得到的结果
{
id:number,
purchaseOrderItems:[{
items:{
name:string
}
}]
}
当您使用select
时,您必须在字段中添加关联关系列。你可以试试这个
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()