다음과 같은 방식으로 적용할 수 있다.
@ManyToOne(() => UserEntity, (user) => user.alarm, {
onDelete: 'CASCADE',
})
user: UserEntity;
@OneToMany(() => AlarmEntity, (alarm) => alarm.user, { cascade: true })
alarm: AlarmEntity[];
cascade 속성이 없으면 userEntity에서 delete 요청이 들어와도 수행에 실패한다.
이는 알림 엔티티가 유저 엔티티와 결부되어 있기 때문이다.
이때, cascade
속성을 적용하면 user가 삭제될 때 그 유저와 연관된 알림 내역도 전부 사라지게 된다.
(아키텍처 면에서도 이 방향이 맞다고 본다.)