【发布时间】:2020-09-27 17:44:13
【问题描述】:
我想要做的是显示与另一个实体相关的所有对象的列表。在这个项目中,一个组有很多用户,一个用户有很多组。
组
@Entity('group')
class Group {
@PrimaryGeneratedColumn('uuid')
id: string;
@Column()
name: string;
@OneToMany(() => GroupMember, groupMember => groupMember.user, {
eager: true,
})
@JoinTable()
members: User[];
@CreateDateColumn()
created_at: Date;
@UpdateDateColumn()
updated_at: Date;
}
用户
@Entity('user')
class User {
@PrimaryGeneratedColumn('uuid')
id: string;
@Column()
first_name: string;
@Column()
email: string;
@OneToMany(() => GroupMember, groupMember => groupMember.group)
@JoinTable()
groups: Promise<Group[]>;
@CreateDateColumn()
@Exclude()
created_at: Date;
@UpdateDateColumn()
@Exclude()
updated_at: Date;
}
组用户
@Entity('group_member')
class GroupMember {
@PrimaryColumn()
group_id: string;
@ManyToOne(() => Group, { primary: true })
@JoinColumn({ name: 'group_id' })
group: Promise<Group>;
@PrimaryColumn()
user_id: string;
@ManyToOne(() => User, { primary: true })
@JoinColumn({ name: 'user_id', referencedColumnName: 'id' })
user: Promise<User>;
@CreateDateColumn()
created_at: Date;
@UpdateDateColumn()
updated_at: Date;
}
我期望的行为是,通过预加载,我在搜索用户时获得组列表,并在搜索组时获得用户列表。我知道我不能在双方都“渴望”,但首先了解如何只处理一个实体就足够了。
目前,我搜索组时得到的只是一个空列表。
【问题讨论】:
标签: database typescript migration modeling typeorm