Skip to content

Commit 802a47a

Browse files
committed
refactor : 멤버가 팀에서 제거될 시 관련 데이터 벌크연산 삭제
1 parent 1ee3df5 commit 802a47a

File tree

4 files changed

+18
-8
lines changed

4 files changed

+18
-8
lines changed

src/main/java/idorm/idormServer/calendar/adapter/out/persistence/DeleteTeamAdapter.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,6 @@ public class DeleteTeamAdapter implements DeleteTeamPort {
1414

1515
@Override
1616
public void delete(Team team) {
17-
teamRepository.delete(team);
17+
teamRepository.delete(team.getId());
1818
}
1919
}

src/main/java/idorm/idormServer/calendar/adapter/out/persistence/DeleteTeamMemberAdapter.java

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -20,24 +20,28 @@
2020
@RequiredArgsConstructor(access = AccessLevel.PROTECTED)
2121
public class DeleteTeamMemberAdapter implements DeleteTeamMemberPort {
2222

23-
private final LoadMemberPort loadMemberPort;
2423
private final LoadTeamPort loadTeamPort;
24+
private final DeleteTeamPort deleteTeamPort;
25+
26+
private final LoadMemberPort loadMemberPort;
27+
2528
private final LoadTeamCalendarPort loadTeamCalendarPort;
29+
2630
private final DeleteSleepoverCalendarPort deleteSleepoverCalendarPort;
27-
private final DeleteTeamPort deleteTeamPort;
2831

2932
@Override
3033
public void deleteTeamMember(Long memberId) {
3134
final Member member = loadMemberPort.loadMember(memberId);
3235
final Team team = loadTeamPort.findByMemberId(member.getId());
3336
final List<TeamCalendar> teamCalendars = loadTeamCalendarPort.findByMemberId(member.getId());
3437

35-
deleteSleepoverCalendarPort.deleteByMemberId(memberId);
36-
teamCalendars
37-
.forEach(teamCalendar -> teamCalendar.deletePariticipant(member.getId()));
3838
team.deleteMember(member);
3939
if (team.getMembers().isEmpty()) {
4040
deleteTeamPort.delete(team);
41+
} else {
42+
deleteSleepoverCalendarPort.deleteByMemberId(memberId);
43+
teamCalendars
44+
.forEach(teamCalendar -> teamCalendar.deletePariticipant(member.getId()));
4145
}
4246
}
43-
}
47+
}

src/main/java/idorm/idormServer/calendar/adapter/out/persistence/SleepoverCalendarRepository.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66

77
import org.springframework.data.jpa.repository.JpaRepository;
88
import org.springframework.data.jpa.repository.Modifying;
9+
import org.springframework.data.jpa.repository.Query;
910
import org.springframework.stereotype.Repository;
1011

1112
@Repository
@@ -15,5 +16,6 @@ public interface SleepoverCalendarRepository
1516
List<SleepoverCalendar> findByMemberId(Long memberId);
1617

1718
@Modifying
19+
@Query("delete from SleepoverCalendar sc where sc.memberId = :memberId")
1820
void deleteByMemberId(Long memberId);
1921
}

src/main/java/idorm/idormServer/calendar/adapter/out/persistence/TeamRepository.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,13 @@
33
import idorm.idormServer.calendar.entity.Team;
44

55
import org.springframework.data.jpa.repository.JpaRepository;
6+
import org.springframework.data.jpa.repository.Modifying;
7+
import org.springframework.data.jpa.repository.Query;
68
import org.springframework.stereotype.Repository;
79

810
@Repository
911
public interface TeamRepository extends JpaRepository<Team, Long>, TeamCustomRepository {
10-
12+
@Modifying
13+
@Query("delete from Team t where t.id = :teamId")
14+
void delete(Long teamId);
1115
}

0 commit comments

Comments
 (0)