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] Hotfix/#619 핀 삭제 시 토픽의 핀 개수가 업데이트되지 않는 버그 해결 #621

Merged
merged 2 commits into from
Nov 14, 2023

Conversation

yoondgu
Copy link
Collaborator

@yoondgu yoondgu commented Nov 13, 2023

작업 대상

  • AdminCommandService
  • 관련 테스트 코드

📄 작업 내용

#619 참조 부탁드립니다.

간단히 말하면 pin.decreaseTopicPinCount()에 대한 변경 감지가 발생하지 않는 문제입니다.

    public void deletePin(Long pinId) {
        Pin pin = pinRepository.findById(pinId)
                .orElseThrow(() -> new PinNotFoundException(PIN_NOT_FOUND, pinId));

        pin.decreaseTopicPinCount();
        pinRepository.flush(); // 추가 된 코드
        pinImageRepository.deleteAllByPinId(pinId);
        pinRepository.deleteById(pin.getId());
    }

위 코드에서, deleteXXX 메서드들에 의해 clearAutomatically = true로 설정된 네이티브 쿼리가 발생합니다.
이 때 영속성 컨텍스트가 데이터베이스의 내용과 동일하게 초기화됩니다.
따라서 윗줄에서 pin.decreaseTopicPinCount()를 해주었어도,
커밋하는 시점에서는 영속성 컨텍스트에 해당 변경사항이 반영되지 않는 것입니다.
그래서 해당 변경을 반영할 수 있도록 flush를 추가했습니다.

🙋🏻 주의 사항

실제 운영 환경에 바로 노출되는 부분이므로 main에 대한 hotfix 먼저 올립니다.
해당 브랜치 머지 후, dev 브랜치 작업하면 main pull 받은 후 작업부탁드려용

  • 비슷하게, 역정규화된 컬럼의 정보에 대해서 dirty checking이 동작하지 않는 부분이 있는지 테스트를 보완하며 확인해봐도 좋을 것 같아요.

스크린샷

📎 관련 이슈

closed #619

레퍼런스

@yoondgu yoondgu added bug Something isn't working BE 백엔드 관련 이슈 우선순위 : 상 labels Nov 13, 2023
@yoondgu yoondgu self-assigned this Nov 13, 2023
Copy link

Unit Test Results

  70 files    70 suites   32s ⏱️
347 tests 347 ✔️ 0 💤 0
370 runs  370 ✔️ 0 💤 0

Results for commit ad19450.

Copy link
Collaborator

@kpeel5839 kpeel5839 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

오히려 clearAutomatically 가 제대로 동작하게 되면서 이런 문제를 야기할 수도 있군요..

너무 고생하셨습니다! 도이!

운영서버에 PinCount 정상적으로 표시될 수 있도록, Sql 구문 실행하는 것은 제가 하겠습니다~~

Copy link
Collaborator

@cpot5620 cpot5620 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

허허 점점 코드가 ㅠㅠ
고생 많으셨어요 도이 !! 이걸 우째 발견했대 !!!!!!!

@yoondgu yoondgu merged commit 8f2395a into main Nov 14, 2023
3 checks passed
@semnil5202 semnil5202 deleted the hotfix/#619 branch February 9, 2024 23:46
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 우선순위 : 상
Projects
Status: Done
Development

Successfully merging this pull request may close these issues.

[BE] 핀 삭제 시 토픽의 핀 개수가 업데이트되지 않는 버그
4 participants