DevBoi

[NestJs] TypeORM entity cascade 설정 본문

Develop/[NestJs]

[NestJs] TypeORM entity cascade 설정

HiSmith 2023. 7. 1. 16:43
반응형

여러개의 연관관계가 매핑되어 있는경우, 

예를 들어, 1:N관계로 설정이 되어있을때 부모 데이터를 삭제하면 삭제가 되지않는다.

이유는 하위 데이터가 있는 경우, 외래키 제약 조건이 걸려있어서 하위데이터를 삭제 해야만 삭제를 할수 있도록

데이터 베이스 단에서 막아버리는 것이다.

 

이름이...외래키 제약조건인가..무튼 그래서

jpa에서도 cascade(고아객체)에 대한 전파를 줄수 있다.

이를  nestjs 적용하면 아래와 같다.

 

  @JoinColumn() 
  @ManyToOne(() => Corp, (corp) => corp.foods,{onDelete: 'CASCADE'})
  corp : Corp; //업체 매핑
  
  @OneToMany(() => FoodImage, (foodImage) => foodImage.food,{cascade: true})
  foodImage: FoodImage[]

 

부모 객체(키를 가지는 객체는 cascade옵션을 켜주고, 반대 객체에서는 onDelete시에 전파를 선언해주면,

부모 데이터를 삭제하면 다 같이 삭제가 된다.

 

 

반응형