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

[feat] #286 - QueryDSL 세팅 완료 #287

Merged
merged 5 commits into from
Dec 6, 2024
Merged

[feat] #286 - QueryDSL 세팅 완료 #287

merged 5 commits into from
Dec 6, 2024

Conversation

hoonyworld
Copy link
Member

@hoonyworld hoonyworld commented Dec 5, 2024

Related issue 🛠

Work Description ✏️

참고 아티클(클릭)

  • 위의 아티클을 참고하여 QueryDSL을 사용하기 위한 사전 작업을 완료하였습니다.
  • 밑에서 설명하는 내용이 해당 블로그에 모두 포함되어 있으니, 한번 읽어봐주시기를 부탁드립니다!

알아야 햘 점

  • Gradle 빌드 스크립트 내에 QueryDSL 관련 설정을 합니다. 해당 설정의 주요 목적은 메타 모델(Q-Class)을 생성/삭제하기 위함에 설정을 합니다.
  • build complie을 수행하면 엔티티 클래스를 기반으로 지정한 디렉터리 내에 Q-Class를 생성합니다.
  • build clean을 수행하면 생성된 디렉터리 내에 Q-Class를 삭제합니다.

주의할 점

  • 엔티티 클래스의 필드가 변경되는 경우 컴파일만 수행하면 갱신이 되나? 아니면 build clean을 수행해야 하는가?
    • 엔티티 클래스의 필드가 변경되는 경우, 컴파일만 수행해도 갱신이 됩니다. 그러나 혹시 모를 상황을 대비하여 변경사항이 반영되지 않았을 경우에는 build clean을 수행한 후 다시 컴파일을 수행하면 됩니다.

Trouble Shooting ⚽️

Related ScreenShot 📷

image
  • ./gradlew build를 입력하면 build 패키지가 생성되고, 설정한 경로명(src/main/generated/querydsl/)에 QClass가 생성된 것을 확인했습니다.
image
  • ./gradlew clean를 입력하면 build 패키지가 삭제되고, 설정한 경로명(src/main/generated/querydsl/)에 QClass가 삭제된 것을 확인했습니다.

Uncompleted Tasks 😅

To Reviewers 📢

  • 참고 아티클를 한 번 읽어봐 주시면 감사하겠습니다!

- JPA 환경을 구성하고 QueryDSL을 사용할 수 있도록 설정하는 클래스
- 매번 EntityManager를 주입받아서 구성해야 하는 JPAQueryFactory를 bean으로 등록하여 간편하게 사용하기 위한 목적으로 구성
@hoonyworld hoonyworld self-assigned this Dec 5, 2024
@hoonyworld hoonyworld linked an issue Dec 5, 2024 that may be closed by this pull request
1 task
Comment on lines 12 to 23
@Configuration
@EnableJpaAuditing
public class JpaAuditingConfig {

@PersistenceContext
private EntityManager em;

@Bean
public JPAQueryFactory jpaQueryFactory() {
return new JPAQueryFactory(em);
}
}
Copy link
Collaborator

Choose a reason for hiding this comment

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

JpaAuditingConfig는 createdAt, modifiedAt을 추적하기 위해 JPA auditing을 활성화하는 목적으로 작성한 것이니 queryDSL을 위한 config는 별도로 작성하는 것이 좋을 것 같습니다!
아래 링크 참고해주세요~
https://yoonsys.tistory.com/8

Copy link
Member Author

Choose a reason for hiding this comment

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

찾아보니JPAQueryFactory를 해당 클래스 내부에 정의해도 영향이 없다고 해서 세팅을 해놓았는데, 말씀하신대로 분리하는게 좀 더 의도에 맞고 확장성을 고려한 설계로 보여지네요!

수정하겠습니다~

Copy link
Collaborator

@hyerinhwang-sailin hyerinhwang-sailin left a comment

Choose a reason for hiding this comment

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

세팅 고생하셨습니다👍👍

@hoonyworld hoonyworld merged commit 60ea4f6 into develop Dec 6, 2024
1 check passed
@hoonyworld hoonyworld deleted the feat/#286 branch December 6, 2024 11:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[feat] QueryDSL 세팅
2 participants