Skip to content

Commit 92f197d

Browse files
authored
Merge pull request #172 from Runnect/fix/#170-record-fk-null
[Fix] - 공개 코스 삭제 시 Record FK null 처리 추가
2 parents 8c4fac6 + da7a7ce commit 92f197d

2 files changed

Lines changed: 11 additions & 0 deletions

File tree

src/main/java/org/runnect/server/publicCourse/service/PublicCourseService.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
import org.runnect.server.common.module.convert.CoordinatePathConverter;
1515
import org.runnect.server.course.entity.Course;
1616
import org.runnect.server.course.repository.CourseRepository;
17+
import org.runnect.server.record.repository.RecordRepository;
1718
import org.runnect.server.publicCourse.dto.request.CreatePublicCourseRequestDto;
1819
import org.runnect.server.publicCourse.dto.request.DeletePublicCoursesRequestDto;
1920
import org.runnect.server.publicCourse.dto.response.CreatePublicCourseResponseDto;
@@ -53,6 +54,7 @@ public class PublicCourseService {
5354
private final UserRepository userRepository;
5455
private final ScrapRepository scrapRepository;
5556
private final CourseRepository courseRepository;
57+
private final RecordRepository recordRepository;
5658

5759

5860
@Value("${runnect.marathon-public-course-id}")
@@ -364,6 +366,9 @@ public DeletePublicCoursesResponseDto deletePublicCourses(
364366
//삭제전 연관된 스크랩 먼저 삭제
365367
scrapRepository.deleteByPublicCourseIn(publicCourses);
366368

369+
//삭제전 연관된 Record의 publicCourse FK null 처리
370+
recordRepository.nullifyPublicCourseIn(publicCourses);
371+
367372
//삭제전 course의 isPrivate update
368373
publicCourses.forEach(publicCourse -> publicCourse.getCourse().retrieveCourse());
369374

src/main/java/org/runnect/server/record/repository/RecordRepository.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
package org.runnect.server.record.repository;
22

33
import java.util.Collection;
4+
import org.runnect.server.publicCourse.entity.PublicCourse;
45
import org.runnect.server.record.entity.Record;
56
import org.runnect.server.user.entity.RunnectUser;
7+
import org.springframework.data.jpa.repository.Modifying;
68
import org.springframework.data.jpa.repository.Query;
79
import org.springframework.data.repository.Repository;
810
import org.springframework.data.repository.query.Param;
@@ -29,4 +31,8 @@ public interface RecordRepository extends Repository<Record, Long> {
2931

3032
// DELETE
3133
long deleteByIdIn(Collection<Long> ids);
34+
35+
@Modifying
36+
@Query("UPDATE Record r SET r.publicCourse = null WHERE r.publicCourse IN :publicCourses")
37+
int nullifyPublicCourseIn(@Param("publicCourses") Collection<PublicCourse> publicCourses);
3238
}

0 commit comments

Comments
 (0)