fix: 삭제된 상점 혜택 조회 제외 (main)#2243
Conversation
- 상점 soft delete 시 남아 있는 혜택 매핑을 함께 삭제한다 - 삭제된 상점의 혜택 매핑이 조회 오류로 이어지지 않도록 데이터 정합성을 맞춘다 - 상점 삭제 API 회귀 테스트에 혜택 매핑 삭제 검증을 추가한다
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Soundbar91
left a comment
There was a problem hiding this comment.
연관관계를 활용해서 삭제하는 방법은 별로일가요
@OneToMany(mappedBy = "shop", orphanRemoval = true, cascade = {PERSIST, REFRESH, MERGE, REMOVE})
private List<BenefitCategoryMap> benefitCategoryMaps = new ArrayList<>();
Soundbar91
left a comment
There was a problem hiding this comment.
Shop가 소프트딜리트로 구현이 되어 있으니, BenefitCategoryMap도 컬럼을 추가해서 소프트 딜리트로 구현을 해야할 거 같아요. 하드 딜리트로 구현을 해버리면, Shop를 복구했을 때 데이터가 모두 삭제되는 문제가 발생할 거 같습니당
지금은 임시로 혜택 조회 과정에서 삭제된 상점에 대해서는 조회를 하지 않는 방향으로 가는 게 좋아보여요 ! flyway를 추가하면 지금 develop 브랜치의 flyway 버전이랑 꼬이는 문제가 있어서 쉽지 않아질 거 같아요.
|
원래는 소프트 딜리트된 상점의 혜택은 안보이게 필터링 하려 했는데 그냥 지우는게 어떻냐고 해서 혜택은 하드 딜리트로 해놨습니당 |
- 기존 매핑 데이터가 남아 있어도 삭제된 상점은 혜택 상점 조회에서 제외한다 - 상점 목록의 혜택 상세 조회도 삭제되지 않은 상점 매핑만 반영하도록 맞춘다 - 삭제된 상점 매핑이 남아 있는 회귀 케이스를 추가해 조회 오류를 방지한다
|
아 그리고 지금 |
Soundbar91
left a comment
There was a problem hiding this comment.
고생하셨습니당
하드 딜리트 코드만 삭제해주시면 될 거 같아요 !
제가 배포할 때 main에 체리픽으로 올려야했는데, 배포를 잘못했네요 ;;
- 상점 soft delete 시 혜택 매핑을 삭제하지 않도록 되돌린다 - 기존 매핑 데이터는 조회 단계의 삭제 상점 필터링으로 방어한다 - 상점 삭제 API 테스트는 soft delete 상태만 검증하도록 복원한다
- 혜택 매핑 삭제 처리 제거 과정에서 남은 import 순서와 공백 변경을 되돌린다 - 최종 변경 범위를 삭제된 상점 혜택 조회 필터링으로 한정한다
🔍 개요
shop_benefit_category_map데이터는 삭제하지 않고, 조회 단계에서 삭제된 상점 매핑을 제외합니다.🚀 주요 변경 내용
💬 참고 사항
./gradlew test --tests 'in.koreatech.koin.acceptance.domain.BenefitApiTest' --tests 'in.koreatech.koin.acceptance.admin.AdminShopApiTest.어드민이_상점을_삭제한다' --rerun-tasksBenefitApiTest2개,AdminShopApiTest.어드민이_상점을_삭제한다통과, failures 0, errors 0✅ Checklist (완료 조건)