【问题标题】:Make CreateQueryBuilder return nested object instead of one flat object使 CreateQueryBuilder 返回嵌套对象而不是一个平面对象
【发布时间】:2020-06-19 14:48:31
【问题描述】:

我正在使用带有 TypeORM 的 Typescript。使用 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": ...
  }
}

【问题讨论】:

    标签: javascript node.js typescript typeorm


    【解决方案1】:

    解决方案是不使用 .execute(),而是使用 .getMany()。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-01-11
      • 2014-05-02
      • 2020-11-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多