TypeORM选择的子查询结果在查询后不显示

Cha*_*ito 1 typeorm

所以我有以下查询:

const [discussions, total] = await em
    .createQueryBuilder(Discussion, 'd')
    .select(['d', 'u.id', 'u.firstName', 'u.lastName', 'u.image'])
    .addSelect(
      qb =>
        qb
          .select('COUNT(*)', 'commentCount')
          .from(Comment, 'c')
          .where('c.discussion_id = d.id'),
      'commentCount',
    )
    .leftJoin('d.user', 'u', 'd.user_id = u.id')
    .where('d.project_id = :projectId', { projectId })
    .orderBy({ 'd.updated_date': 'DESC' })
    .limit(limit)
    .offset(offset)
    .getManyAndCount();
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,我正在添加一个子查询选择。

查询执行成功,但discussions数组没有commentCount返回属性。

我缺少什么?

Pav*_*uni 9

使用 getRaw 或 getRawMany 而不是 getManyAndCount。当您选择字段时,typeorm 无法将其映射到您定义的实体,因为选择中可能存在别名。因此,您必须将该数据作为原始数据获取。