QueryDsl 사용을 위한 설정

춤인형의 개발일지·2025년 2월 20일

이것저것

목록 보기
10/13

QueryDsl을 왜?

  • JPA Query Methods를 사용하면 점점 메서드 이름이 지나치게 길어져서 가독성 떨어짐
  • JPA Query Methods와 JPQL은 실행 전(컴파일 타임)에
    기본적인 오류조차 확인하기 힘듦 (❌ Type-safe)

QueryDsl은 조건이 길어질 때, 즉, Querymethod로 충족되지 않을 때 사용한다.

queryDsl을 사용하기 위해서는 몇가지 설정이 필요하다.

  1. build.gradle에 dependencies에 추가한다.
implementation 'com.querydsl:querydsl-jpa:5.0.0:jakarta'
	annotationProcessor "com.querydsl:querydsl-apt:${dependencyManagement.importedProperties['querydsl.version']}:jakarta"
	annotationProcessor "jakarta.annotation:jakarta.annotation-api"
	annotationProcessor "jakarta.persistence:jakarta.persistence-api"
  1. Rebuild project 후 .build->.generated->sources->->... Q~~가 있는지 확인해본다.
    없으면 안돼... 있어야해...

  2. JpaConfig 라는 파일을 만든다.
    이거는 queryDsl을 사용할 때 JPAQueryFactory을 사용할 수 없다. 따라서 이걸 사용해주기 위한 파일이다.

import com.querydsl.jpa.impl.JPAQueryFactory;
import jakarta.persistence.EntityManager;
import jakarta.persistence.PersistenceContext;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.jpa.repository.config.EnableJpaAuditing;

@EnableJpaAuditing
@Configuration
public class JpaConfig {

    @PersistenceContext
    private EntityManager entityManager;

    @Bean
    public JPAQueryFactory jpaQueryFactory() {
        return new JPAQueryFactory(entityManager);
    }
}

0개의 댓글