执行查询时,我在 typeorm 的相关表中获取对象而不是字段 [英] When performing query I get object instead of field, in related table in typeorm
本文介绍了执行查询时,我在 typeorm 的相关表中获取对象而不是字段的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
这些是我的表格:
@Entity('localidades')
export class Localidades {
@PrimaryGeneratedColumn()
id: number;
@Column({type:"varchar",length:100})
nombre: string;
@ManyToOne(type => Provincias)
@JoinColumn({name: "idprovincia"})
provincia: string;
}
@Entity('provincias')
export class Provincias {
@PrimaryGeneratedColumn()
id: number;
@Column({type:"varchar",length:100})
nombre: string;
}
这是我的查询:
return await this.repository.createQueryBuilder("localidades")
.select('localidades')
.addSelect('provincias.nombre')
.leftJoin('localidades.provincia','provincias')
.getMany();
得到的结果:
{
"id": 1,
"nombre": "Ciudad 1",
"provincia": {
"nombre": "Provincia 1"
}
}
预期结果:
{
"id": 1,
"nombre": "Ciudad 1",
"provincia": "Provincia 1"
}
我需要将省作为字段而不是对象返回.
I need province to be returned as a field and not as an object.
您的意见将不胜感激.非常感谢.
Your comments will be appreciated. Thank you very much.
推荐答案
试试这样:
return await this.repository.createQueryBuilder("localidades")
.select('localidades')
.addSelect('provincias.nombre')
.leftJoin('localidades.provincia','provincias')
.addSelect('provincias.nombre AS localidades_provincia') // select with alias
.getRawMany();
更新:
UPD:
return await this.repository.createQueryBuilder("localidades")
.leftJoin('localidades.provincia','provincias')
.select([
'localidades.id AS localidades_id',
'localidades.nombre AS localidades_nombre',
'provincias.nombre AS localidades_idprovincia',
'provincias.nombre AS localidades_provincia'
]).getRawMany();
这篇关于执行查询时,我在 typeorm 的相关表中获取对象而不是字段的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文