【发布时间】:2021-04-23 14:15:39
【问题描述】:
我只是想选择几列,而 typeorm 不允许我这样做。我有一个名为users 的表,它由UserEntity 类表示。
我提出以下要求:
await entityManager.getRepository(UserEntity)
.createQueryBuilder(EDBTableNames.USERS)
.select(`${EDBTableNames.USERS}.id`)
.addSelect(`${EDBTableNames.USERS}.role_name`)
.where(`${EDBTableNames.USERS}.role_name IN ('FIGHTER');`)
.getMany();
我得到的对象只包含用户ID,它没有对应的role_name。问题是为什么?
编辑:
这是id 和roleName 字段在UserEntity 中的样子:
@PrimaryGeneratedColumn('increment')
private id: number;
@Column({
type: 'enum',
name: 'role_name',
enum: EUserRoleName,
})
private roleName: EUserRoleName;
【问题讨论】:
-
如果你使用
.select([`${EDBTableNames.USERS}.id`, `${EDBTableNames.USERS}.role_name`])会怎样?另外我认为.role_name应该是UserEntity的属性名,而不是列名,但我不确定 -
@MicaelLevi 有趣,让我看看。
-
不,没有成功。
Error: column users.roleName does not exist,至于传递数组,也没有用=( -
@MicaelLevi 我不知道它有多重要,但
role_name是一个枚举。我不知道这是否重要,但以防万一。 -
向我们展示你的版本和
.select([])one的查询结果