Spring

QueryDSL 사용 전 환경설정

코드파고 2022. 7. 12. 17:00

QueryDSL이란?

SQL과 유사한 구문으로 안전한 쿼리를 생성할 수 있는 광범위한 Java 프레임워크
재 JPA, JDO, SQL, Java 컬렉션, RDF, Lucene, Hibernate Search, MongoDB를 포함한 별도의 모듈을 사용하여 다양한 백엔드를 광범위하게 지원한다.

IDE에서 코드 완성, 리팩토링이 가능하고 , Type-Safe, Syntax-Safe 하다!

 

QueryDSL 설정을 해 보자!

1. build.gradle 설정 추가

plugins {
   id 'org.springframework.boot' version '2.7.1'
   id 'io.spring.dependency-management' version '1.0.11.RELEASE'
   id "com.ewerk.gradle.plugins.querydsl" version "1.0.10" // 이 줄 추가
   id 'java'
}
dependencies {  
   implementation "com.querydsl:querydsl-jpa:${queryDslVersion}"
   implementation "com.querydsl:querydsl-apt:${queryDslVersion}"
configurations {
   compileOnly {
      extendsFrom annotationProcessor
   }
   querydsl.extendsFrom compileClasspath // 이 줄 추가!
}
def querydslDir = "$buildDir/generated/querydsl"

querydsl {
   jpa = true
   querydslSourcesDir = querydslDir
}

sourceSets {
   main.java.srcDir querydslDir
}

compileQuerydsl{
   options.annotationProcessorPath = configurations.querydsl
}

compileQuerydsl.doFirst {
   if (file(querydslDir).exists()) delete(file(querydslDir))
}

2. gradle-Tasks-other-compileQuerydsl 눌러서 실행

3. 프로젝트 파일-build-generated-querydsl에서 컴파일 결과 확인가능

4. Contiguration 만들어주기

@Configuration
public class QuerydslConfiguration {

    @PersistenceContext
    private EntityManager entityManager;

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