서버를 구축해두고, 프론트와 연결하는 중에 삭제 오류가 발생했다.
다른 때에는 삭제가 잘 됐었는데, 갑작스러운 .. 오류창을 발견해서 매우 당황했다.
Cannot delete or update a parent row: a foreign key constraint fails
이런 오류가 발생했다 ..
constraint.. 연관관계 매핑에서 발생한 문제 같았다.
이전에 댓글 삭제할 때는 이런 오류가 없었는데 왜지 ? 싶었다.
다시 생각해보니, 댓글과 연관된 댓글의 좋아요 테이블이 따로 있는데, 댓글에 그 연관관계를 매핑해주지 않았다.
즉, 댓글의 좋아요 테이블에서만 댓글이 조회가 가능한 단방향 관계로 매핑해 두어서 Cascade 속성을 줄 수 없었다.
따라서, 양방향 관계를 만들어서 Cascade 속성을 줄 지,
아니면 해당 댓글에 해당하는 좋아요 기록들을 찾아서 지워줄지 결정해야 한다.
나는 우선 양방향의 관계는 만들지 않고, 그냥 데이터를 찾아서 지워주는 방법으로 설정했다.
그리고 게시글 삭제에도 동일하게 오류가 났다.
좋아요 테이블에서 마찬가지로 오류가 발생했다.
게시글은, 게시글 좋아요, 댓글, 댓글 좋아요가 한 번에 연관관계를 맺고 있다.
댓글은 양방향 관계로 매핑해두어 Cascade 속성이 주어져있다.
하지만 두 개의 좋아요 테이블은 단방향이라 Cascade를 줄 수 없었다.
따라서 게시글 삭제에도 각각 좋아요 테이블에서 기록을 지워주는 것으로 해결했다.
글 잘 봤습니다, 많은 도움이 되었습니다.