使 CreateQueryBuilder return 嵌套对象而不是一个平面对象
Make CreateQueryBuilder return nested object instead of one flat object
我正在使用 Typescript 和 TypeORM。使用 CreateQueryBuilder,我想接收一个嵌套对象。相反,我收到了一个平面对象,如第二个块所示。我该如何解决这个问题?
const x = await getConnection()
.createQueryBuilder()
.select(['reportHead', 'order', 'workOrder'])
.from('report_head', 'reportHead')
.innerJoin('reportHead.workOrder', 'workOrder')
.innerJoin('workOrder.order', 'order')
.where(`order.customer.id = :customerId`, { customerId: req.user.customer.id })
.execute();
如何避免数据看起来像这样:
{
"reportHead_id": "asd",
"reportHead_number": "123",
"workOrder_id": "dsa",
"workOrder_status: "OK",
"order_id": "sda",
"order_whatev": "ks"
}
而是像这样嵌套对象:
{
"reportHead": {
"id": ...
},
"workOrder": {
"id": ...
},
"order": {
"id": ...
}
}
解决方案是不使用 .execute(),而是使用 .getMany()。
我正在使用 Typescript 和 TypeORM。使用 CreateQueryBuilder,我想接收一个嵌套对象。相反,我收到了一个平面对象,如第二个块所示。我该如何解决这个问题?
const x = await getConnection()
.createQueryBuilder()
.select(['reportHead', 'order', 'workOrder'])
.from('report_head', 'reportHead')
.innerJoin('reportHead.workOrder', 'workOrder')
.innerJoin('workOrder.order', 'order')
.where(`order.customer.id = :customerId`, { customerId: req.user.customer.id })
.execute();
如何避免数据看起来像这样:
{
"reportHead_id": "asd",
"reportHead_number": "123",
"workOrder_id": "dsa",
"workOrder_status: "OK",
"order_id": "sda",
"order_whatev": "ks"
}
而是像这样嵌套对象:
{
"reportHead": {
"id": ...
},
"workOrder": {
"id": ...
},
"order": {
"id": ...
}
}
解决方案是不使用 .execute(),而是使用 .getMany()。