20260211 [TIL] 외래키로 매핑되어 있는 부모 테이블 row 삭제

2026. 2. 11. 15:36·IL/TIL

❗문제 상황

댓글이 달린 일정을 삭제하려고 DELETE 요청을 보냈더니 삭제가 실패함.

응답은 500 에러가 뜸

콘솔에 이런 게 찍히는데요.....? FK 관련 오류 아니 삭제하게 해 달라고요

원인은...... `comments` 테이블의 schedule_id가 schedules.id를 참조하는 외래키(FK)라서 부모 삭제를 db가 참조 무결성을 지키려고 막음..... ~

 

해결

댓글이 가리키는 일정이 없어지면 댓글이 이상해지니까 님 댓글 먼저 삭제를 해야 됨 아..!

    // 댓글 일괄 삭제 쿼리 메서드
    void deleteAllByScheduleId(Long scheduleId);

CommentRepository에 또 쿼리 메서드 추가 아니 얘 진짜 편하네 QueryDSL은 들어만 봤는데 이것보다 더 편하나....?

// 일정 삭제
    @Transactional
    public void delete(Long scheduleId) {
        commentRepository.deleteAllByScheduleId(scheduleId);  // 얘 추가
        Schedule schedule = getScheduleOrThrow(scheduleId);
        scheduleRepository.delete(schedule);
    }

ScheduleService에 댓글 먼저 삭제... 

 

하하 댓글이 존재하는 일정도 정상적으로 삭제되고 댓글, 일정 데이터가 DB에서 함께 삭제되는 것을 확인......

하하 성공

 

저작자표시 비영리 (새창열림)

'IL > TIL' 카테고리의 다른 글

20260310 [TIL] 클라우드 아키텍처 설계 & 배포  (0) 2026.03.10
20260304 [TIL] - 코드 개선  (0) 2026.03.03
20260210 [TIL]  (0) 2026.02.10
[TIL] Hibernate Dialect(MySQL8Dialect) 오류 스키마 DDL 경고  (0) 2026.02.08
20260129 [TIL] - Spring 입문 시작에서  (0) 2026.01.29
'IL/TIL' 카테고리의 다른 글
  • 20260310 [TIL] 클라우드 아키텍처 설계 & 배포
  • 20260304 [TIL] - 코드 개선
  • 20260210 [TIL]
  • [TIL] Hibernate Dialect(MySQL8Dialect) 오류 스키마 DDL 경고
견지
견지
개발로 개발하는지 새발로 개발하는지 내가 개인 건지 새인 건지 사람인 건지
  • 견지
    개발새발
    견지
  • 전체
    오늘
    어제
    • 분류 전체보기 (20)
      • ... (0)
      • IL (20)
        • TIL (16)
        • WIL (4)
        • MIL (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • Github
  • 공지사항

  • 인기 글

  • 태그

    JSP
    java
    DB
    HTML
    JavaScript
    oracle
    git
    CSS
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.6
견지
20260211 [TIL] 외래키로 매핑되어 있는 부모 테이블 row 삭제
상단으로

티스토리툴바