File tree Expand file tree Collapse file tree
src/main/java/org/runnect/server/publicCourse/service Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1313import org .runnect .server .common .exception .PermissionDeniedException ;
1414import org .runnect .server .common .module .convert .CoordinatePathConverter ;
1515import org .runnect .server .course .entity .Course ;
16+ import org .runnect .server .record .entity .Record ;
1617import org .runnect .server .course .repository .CourseRepository ;
1718import org .runnect .server .publicCourse .dto .request .CreatePublicCourseRequestDto ;
1819import org .runnect .server .publicCourse .dto .request .DeletePublicCoursesRequestDto ;
@@ -365,7 +366,16 @@ public DeletePublicCoursesResponseDto deletePublicCourses(
365366 //삭제전 course의 isPrivate update
366367 publicCourses .forEach (publicCourse -> publicCourse .getCourse ().retrieveCourse ());
367368
368- publicCourseRepository .deleteAllInBatch (publicCourses );
369+ // FK 제약 조건 해소: Record.public_course_id (NULLABLE) → null 처리
370+ publicCourses .forEach (publicCourse ->
371+ publicCourse .getRecords ().forEach (Record ::setPublicCourseNull )
372+ );
373+
374+ // FK 제약 조건 해소: Scrap.public_course_id (NOT NULL) → 행 삭제
375+ scrapRepository .deleteByPublicCourseIn (publicCourses );
376+
377+ // deleteAll: Hibernate ActionQueue가 UPDATE → DELETE 순서 보장
378+ publicCourseRepository .deleteAll (publicCourses );
369379
370380 return DeletePublicCoursesResponseDto .from (publicCourses .size ());
371381 }
You can’t perform that action at this time.
0 commit comments