TypeORM @OneToMany() /@ManyToOne() 应用示例
@OneToMany()和@ManyToOne()是TypeORM中的装饰器,用于在实体之间建立一对多和多对一的关系。以下是一些使用这些装饰器的应用示例:
用户和订单
用户和订单之间是一对多的关系,一个用户可以有多个订单。订单实体类可以使用@ManyToOne()装饰器引用用户实体类,用户实体类可以使用@OneToMany()装饰器包含多个订单实体类。
@Entity()
export class User {
@PrimaryGeneratedColumn()
id: number;
@OneToMany(() => Order, order => order.user)
orders: Order[];
}
@Entity()
export class Order {
@PrimaryGeneratedColumn()
id: number;
@ManyToOne(() => User, user => user.orders)
user: User;
}
课程和学生
课程和学生之间是多对一的关系,多个学生可以选择同一个课程。课程实体类可以使用@OneToMany()装饰器包含多个学生实体类,学生实体类可以使用@ManyToOne()装饰器引用课程实体类。
@Entity()
export class Course {
@PrimaryGeneratedColumn()
id: number;
@OneToMany(() => Student, student => student.course)
students: Student[];
}
@Entity()
export class Student {
@PrimaryGeneratedColumn()
id: number;
@ManyToOne(() => Course, course => course.students)
course: Course;
}
团队和成员
团队和成员之间也是一对多的关系,一个团队可以有多个成员。成员实体类可以使用@ManyToOne()装饰器引用团队实体类,团队实体类可以使用@OneToMany()装饰器包含多个成员实体类。
@Entity()
export class Team {
@PrimaryGeneratedColumn()
id: number;
@OneToMany(() => Member, member => member.team)
members: Member[];
}
@Entity()
export class Member {
@PrimaryGeneratedColumn()
id: number;
@ManyToOne(() => Team, team => team.members)
team: Team;
}