【发布时间】:2021-01-16 09:53:21
【问题描述】:
有两个实体如下:
// user.entity.ts
@Entity()
export class User extends BaseEntity {
@PrimaryGeneratedColumn()
id: number;
@Column()
@RelationId((user: User) => user.group)
groupId: number;
@Column()
fullName: string;
@Column()
email: string;
@Column()
passwordHash: string;
@ManyToOne(type => Group, group => group.users)
@JoinColumn()
group: Group;
isOwner: boolean;
}
// group.entity.ts
@Entity()
export class Group extends BaseEntity {
@PrimaryGeneratedColumn()
id: number;
@Column()
name: string;
@Column({ default: false })
isOwner: boolean;
@OneToMany(type => User, user => user.group)
users: User[];
}
我想将Group 的isOwner 值映射到User 的isOwner
我试过了:
async findOneById(id: number): Promise<User> {
return await User.createQueryBuilder('user')
.leftJoinAndMapOne('user.isOwner', 'user.group', 'group')
.select(['user.id', 'user.fullName', 'user.email', 'group.isOwner'])
.getOne();
}
结果是:
可以通过使用@AfterLoad() 或使用 JS 或使用原始查询来实现。
但是
是否可以在查询级别使用 orm 来实现?
【问题讨论】:
标签: postgresql orm nestjs typeorm