typeorm QueryBuilder select AS Пседоним для колонки, получить все колонки из SQL
Primary tabs
Например:
const items = await this.someEntityRepository
.createQueryBuilder('someEntity')
.leftJoinAndSelect('someEntity.details', 'someEntity_details')
.where(`someEntity.userId = :user_id`, { user_id: username })
.select([
'someEntity.userId as userId',
'someEntity.permission as permission',
'someEntity.someEntityName as someEntityName',
'someEntity.details AS detailsId',
])
.orderBy({
'someEntity_details.date_updated': 'DESC',
})
.getRawMany();-- обратите внимание, что мы используем getRawMany() вместо getMany(), который возвраает только те значения, имена которых соотвествуют именам полей сущности (в нашем случае это someEntity) и не возвращает те, которым мы назначем какие-то отличные псевдонимы.
ПРИМЕЧАНИЕ: сработает нормально только для пведонимов в нижнем регистре (по крайней мере при работе с postresql с настройками по умолчанию, если в псевдониме встречаются большие буквы, то они переводятся в нижний регистр, т.к. решение не подходит для накоторых случаев)
- Log in to post comments
- 1609 reads