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
- 1117 reads