Skip to content

Commit

Permalink
refactor(#105): 빈 싸이클 에러 해결
Browse files Browse the repository at this point in the history
  • Loading branch information
jusung-c committed Nov 19, 2023
1 parent d11ada1 commit 31cca66
Show file tree
Hide file tree
Showing 3 changed files with 9 additions and 11 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -292,9 +292,14 @@ public void updateHousework(HouseworkInfoUpdateServiceRequest request) {

// -> 비단건 집안일
else {
// 기존의 담당자 리스트가 groupMemberIdList와 동일하지 않다면(담당자가 바뀌었다면) houseworkMember 전부 삭제
// hosueworkInfo의 담당자 리스트를 뽑은 후 groupMemberIdList와 동일하지 않다면 false 리턴
boolean isHMUpdate = houseworkMemberRepository.deleteHouseworkMemberIfGroupMemberIdIn(requestInfo, request.getGroupMemberIdList());

// 담당자가 바뀔 것이므로 이전 담당자 리스트 삭제
if (!isHMUpdate) {
houseworkMemberRepository.deleteByHouseworkInfo(requestInfo);
}

// HouseworkInfo를 외래키로 가진 HouseworkTodo의 houseworkInfo 필드값 null로 변환해 관계 해제
houseworkTodoRepository.updateHouseworkTodoByHouseworkInfoId(requestInfo.getId());

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,6 @@
import java.util.List;

public interface HouseworkMemberRepositoryCustom {
// hosueworkInfo의 담당자 리스트를 뽑은 후 groupMemberIdList와 동일하지 않다면 houseworkMember 전부 삭제 후 false 리턴
// hosueworkInfo의 담당자 리스트를 뽑은 후 groupMemberIdList와 동일하지 않다면 false 리턴
public boolean deleteHouseworkMemberIfGroupMemberIdIn(HouseworkInfo info, List<Long> groupMemberIdList);
}
Original file line number Diff line number Diff line change
Expand Up @@ -6,17 +6,16 @@
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Component;

import java.util.HashSet;
import java.util.List;
import java.util.stream.Collectors;

import static com.heachi.mysql.define.group.member.QGroupMember.groupMember;
import static com.heachi.mysql.define.housework.member.QHouseworkMember.houseworkMember;

@Component
@RequiredArgsConstructor
public class HouseworkMemberRepositoryCustomImpl implements HouseworkMemberRepositoryCustom {
private final JPAQueryFactory queryFactory;
private final HouseworkMemberRepository houseworkMemberRepository;


@Override
Expand All @@ -28,12 +27,6 @@ public boolean deleteHouseworkMemberIfGroupMemberIdIn(HouseworkInfo info, List<L
.collect(Collectors.toList());

// houseworkGroupMemberIdList의 요소들이 groupIdList의 요소들과 정확히 일치하면 true 리턴
if (groupIdList.containsAll(houseworkGroupMemberIdList)) {
return true;
} else {
// 다르다면 HouseworkMember 전부 삭제
houseworkMemberRepository.deleteAll(houseworkMemberList);
return false;
}
return new HashSet<>(groupIdList).containsAll(houseworkGroupMemberIdList);
}
}

0 comments on commit 31cca66

Please sign in to comment.