所以我有以下问题:
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();
我正在添加子查询选择。
查询已成功执行,但discussions
数组未返回属性commentCount
。
我错过了什么?
答案 0 :(得分:1)
使用getRaw或getRawMany而不是getManyAndCount。当您选择字段时,typeorm无法将其映射到您已定义的实体,因为select中可能存在别名。所以你必须将这些数据作为原始数据。