Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[BE] 지연로딩으로 조회하는 경우, soft delete을 반영할 수 없음 #540

Closed
9 tasks done
yoondgu opened this issue Oct 2, 2023 · 0 comments
Closed
9 tasks done
Assignees
Labels
BE 백엔드 관련 이슈 bug Something isn't working refactor 리팩토링 관련 이슈 우선순위 : 상

Comments

@yoondgu
Copy link
Collaborator

yoondgu commented Oct 2, 2023

🐞버그 설명

Repository 메서드에 IsDeletedFalse를 붙여 조회 기능에 soft delete을 반영함에 따라
지연 로딩으로 정보를 조회하는 경우, 삭제된 토픽/핀도 조회하게 됩니다.
지연 로딩 시에도 soft delete을 반영하도록 리팩터링이 필요해 보입니다.

고려해야 할 연관관계 (테스트 작성)

  • topic.getPins
  • member.getCreatedPins
  • location.getPins
  • member.getCreatedTopics
  • pin.getPinImages
  • pin.getTopic (즉시로딩, topic 삭제 시 pin도 삭제함)
  • atlas.getTopic (즉시로딩, soft delete 해당 X)
  • bookmark.getTopic (즉시로딩, soft delete 해당 X)

작업 내용

  • 지연로딩 대상인 엔티티에 Where 적용, 테스트 작성
    • Where 적용으로 인해 깨지는 테스트 수정
  • 기존에 JPQL에 조건부를 붙인 조회 쿼리를 Where 적용으로 변경
    • Where 적용으로 인해 깨지는 테스트 수정

📄 버그 로그

No response

🌏 버그 발생 환경

환경 무관

✅ 버그 재현 방법

재현 1

  • 내가 만든 토픽을 삭제한다.
  • 내 정보에서 내가 만든 토픽 목록을 확인한다.

재현 2

  • 내가 만든 토픽에서 핀 하나를 삭제한다.
  • 해당 토픽을 상세 조회할 때, 삭제한 핀이 있는지 확인한다.

📎 참고 자료

No response

⏰ 추정 시간

비관적 추정: (전체 리팩터링할 경우) 4시간 +a
낙관적 추정: (해결만 할 경우) 1시간

@yoondgu yoondgu added bug Something isn't working BE 백엔드 관련 이슈 우선순위 : 상 refactor 리팩토링 관련 이슈 labels Oct 2, 2023
@yoondgu yoondgu added this to the 최종 데모데이 milestone Oct 3, 2023
@yoondgu yoondgu self-assigned this Oct 4, 2023
@yoondgu yoondgu moved this to In Progress in 2023-map-befine Oct 5, 2023
cpot5620 pushed a commit that referenced this issue Oct 6, 2023
* fix: Pin @where 적용으로 지연 로딩 시 soft delete 반영

* fix: Pin 삭제 시 pinCount 반영하도록 수정

- 검토할 TODO 다수 존재

* fix: Pin @where 적용에 따라 JPQL 원복

* refactor: Member update 메서드 형식 통일

* fix: Topic @where 적용으로 지연 로딩 시 soft delete 반영

* fix: PinImage @where 적용으로 지연 로딩 시 soft delete 반영

* refactor: 메서드명 수정

* refactor: AdminCommandService 의 불필요한 EntityManager 의존성 제거

* refactor: 누락된 삭제 로직 TODO 작성

* refactor: 개행 수정

* refactor: 개행 수정

* fix: 토픽 삭제 중복 로직이나 사용되지 않는 API 코드 @deprecated 처리

* fix: 토픽 삭제 시 연관 관계 지우지 않는 부분 수정

* fix: AuthMember 생성 시 정상 사용자만 조회하도록 filter 추가, 검증 추가

* test: AuthServiceTest 작성

* chore: /permissions/id API @deprecated 추가
@yoondgu yoondgu closed this as completed Oct 6, 2023
@github-project-automation github-project-automation bot moved this from In Progress to Done in 2023-map-befine Oct 6, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
BE 백엔드 관련 이슈 bug Something isn't working refactor 리팩토링 관련 이슈 우선순위 : 상
Projects
Status: Done
Development

No branches or pull requests

1 participant