如何在注册实体中添加触发器,每次插入该课程的注册时,该触发器都会将相应课程的总注册计数更新为 1? 这是我的 EnrollmentEntity:
export class EnrollmentEntity extends CustomBaseEntity {
@ManyToOne(() => CourseEntity, (courseEntity) => courseEntity.enrollments, {
nullable: false,
})
@JoinColumn({ name: 'course_id' })
course: CourseEntity;
}
这是我的课程实体:
export class CourseEntity extends CustomBaseEntity {
@Column({
name: 'total_enrollments',
type: 'bigint',
nullable: false,
default: 0,
})
totalEnrollments: number;
@OneToMany(
() => EnrollmentEntity,
(enrollmentEntity) => enrollmentEntity.course,
)
enrollments: EnrollmentEntity[];
}
export class EnrollmentEntity extends CustomBaseEntity {
@ManyToOne(() => CourseEntity, (courseEntity) => courseEntity.enrollments, {
nullable: false,
})
@JoinColumn({ name: 'course_id' })
course: CourseEntity;
@AfterInsert()
async updateCourse() {
let id = this?.course;
const course = await CourseEntity.findOne({
where: {
id: String(id),
...isActive
}
});
if (course) {
course.totalEnrollments = Number(course?.totalEnrollments) + 1;
await CourseEntity.save(course);
}
}
}