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] refactor: StageQueryInfo, FestivalQueryInfo 직렬화 시 쿼리에 의존적인 로직 어플리케이션 로직으로 이동 (#1003) #1004

Open
wants to merge 2 commits into
base: dev
Choose a base branch
from

Conversation

seokjin8678
Copy link
Collaborator

@seokjin8678 seokjin8678 commented Jun 3, 2024

📌 관련 이슈

✨ PR 세부 내용

이슈 내용대로 FestivalIdStageArtistsQueryDslResolver에서 distinctorderBy 절을 제거하고 어플리케이션 로직으로 이동시켜 비즈니스 로직의 응집도를 향상시켰습니다.

image

성능에 큰 영향은 없을 것 같지만, 결과로 쿼리 cost가 9에서 6으로 약 30% 정도 줄었습니다.

다만 어플리케이션에서 distinct를 처리해야 하기에 Artist에서 equals, hashCode 메서드를 재정의 했습니다.
(equals만 재정의하면 되지만, equals를 재정의하면 hashCode 또한 같이 재정의를 해야합니다)

이때 Artist는 JPA 엔티티이기 때문에 일반적인 방법으로 equals, hashCode 메서드를 재정의하면 예상하지 못한 문제가 발생할 수 있습니다.
(프록시 문제)

따라서 엔티티의 경우에는 조금 특별한 방법으로 복잡하게 equals, hashCode를 재정의해야 하는데, JPA Buddy 플러그인을 사용하면 매우 간단하게 정의할 수 있습니다.

자세한 내용은 JPA Buddy 아티클 또는 블로그 참고하시면 좋을 것 같습니다.

@seokjin8678 seokjin8678 added BE 백엔드에 관련된 작업 ⚙️ 리팩터링 리팩터링에 관련된 작업 labels Jun 3, 2024
@seokjin8678 seokjin8678 self-assigned this Jun 3, 2024
@github-actions github-actions bot requested review from BGuga, carsago and xxeol2 June 3, 2024 12:24
Copy link

github-actions bot commented Jun 3, 2024

Test Results

245 files  245 suites   28s ⏱️
792 tests 792 ✅ 0 💤 0 ❌
810 runs  810 ✅ 0 💤 0 ❌

Results for commit 824daf1.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
BE 백엔드에 관련된 작업 ⚙️ 리팩터링 리팩터링에 관련된 작업
Projects
None yet
1 participant