최근 Spring Boot, Spring Boot Data Jpa, Hibernate를 사용하면서
Spring Boot Data JPA 프로젝트에서 Querydsl을 적용하는 방법에 대하여 알려드리겠습니다.
먼저 Querydsl 관련 플러그인을 다음과 같이 추가해줍니다.
그다음, querydsl 라이브러리를 dependencies에 다음과 같이 추가해줍니다.
이후, gradle에서 querydsl을 통해 Qclass를 생성하기 위하여 QClass가 생성될 디렉토리의 위치와 관련 설정들을 작성하는 Task를 다음과 같이 추가해줍니다.
Java 플러그인에는 Source Set이라는 개념이 들어가 있으며, 이는 함께 컴파일과 실행되는 소스 파일들의 그룹들을 뜻합니다. 다음과 같이 자바 코드와 QClass가 같이 컴파일되도록 설정해줍니다.
이후 Refresh Gradle Prject 버튼을 클릭하여, Gradle이 Querydsl 관련 라이브러리와 Task, 프로젝트에 사용된 라이브러리들을 다시 불러오고 싱크를 맞출 수 있도록 합니다.
Build관련 프로세스가 모두 녹색으로 체크가 완료되고, Sync finished 문구가 뜨면 Gradle이 Querydsl 관련 라이브러리와 Task 관련 스크립트를 성공적으로 적용한것입니다.
이제 다음은 Querydsl에서 사용되는 QClass를 생성하도록 하겠습니다.
QClass를 생성하기 위해서는 다음과 같이 진행합니다
other 디렉토리를 클릭하면 다음과 같이 task 목록이 나타납니다. Querydsl 라이브러리가 프로젝트에 성공적으로 추가되었다면, 다음과 같이 compileQuerydsl task가 목록에 존재합니다. 해당 task를 더블 클릭하여 실행시켜줍니다.
Gradle에서 compileQuerydsl Task 실행시키면, 아래와 같이 콘솔 로그가 찍히게 됩니다. Build Successful이라는 문구가 뜨면 각 Entity 클래스에 맞는 QClass가 앞서 build.gradle 스크립트에서 정의한 querydslSrcDir 위치에 성공적으로 생성됩니다.
querydslSrcDir 디렉토리에 가면 다음과 같이 User Entity에 맞는 QUser 클래스가 생성됩니다(예시입니다).
이후 다음과 같이 CustomRepository Interface를 만들고, 해당 Interface를 구현하는 CustomRepositoryImpl 클래스에 QuerydslRepositorySupport 클래스를 상속받아 원하는 비즈니스 로직에 맞춰 메소드를 호출합니다.
끄읏!
'Programming > Java' 카테고리의 다른 글
[Gradle] Gradle 에서 Launch4j Plugin 사용해서 exe 실행파일 만들기 (0) | 2019.11.14 |
---|---|
[Intellij(인텔리제이)] Intellij 내장 Http Client로 API 테스트 해보기 (2) | 2019.08.16 |
클래스 생성과 main 메소드 그리고 HelloWorld 출력 (0) | 2017.09.05 |
[Effective-Java] Rule-02. 생성자 인자가 많을땐 Builder 패턴을 고려하라 (0) | 2017.08.10 |
[Effective-Java] Rule-01. 생성자 대신 정적 팩토리 메소드를 사용할 수 없는지 생각해 보자 (0) | 2017.08.03 |