💡 JPA 연관관계가 존재할 때 Entity 삭제하기

JPA 프로젝트를 진행하던 중, 회원 탈퇴를 진행할 때 User와 그에 연관된 Entity에서 @ManyToOne 관계에서 영속성 관리에서 문제가 발생되었다.

그냥 User Data를 delete하려고하면 다음과 같은 Error가 발한다.

Cannot delete or update a parent row: a foreign key constraint fail

참조된 객체를 지워주지 않았기 때문에 발생하였다.

🔔 OneToMany Cascade

처음에는 @ManyToOne 어노테이션에 cascade option을 부여해서 영속성을 부여 해 보았다. 그러나 User를 Delete할 때 위와 같은 오류가 계속해서 발생했다.

결론적으로 찾은 이유는 내가 단방향으로 child에게 parent만을 Mapping했기 때문이다.parentchild를 매핑하지 않았기 때문에 계단식으로 데이터가 삭제되는데 실패했다.

그래서 둘을 양방향으로 연결 해 주는 것을 우선적으로 해야했다.

@OneToMany 어노테이션으로 parent Entity에 List나 Set 형식으로 child를 Mapping 해 주었다.

나는 이 부분 때문에 계속

Caused by: org.hibernate.AnnotationException: mappedBy reference an unknown target entity property

에러가 발생했었는데 변수명을 일치시키지 않아서 생긴 문제였다.