QueryDSL

2024. 6. 10. 20:20TIL

✔오늘 배운 중요한 🔑 point

  • QueryDSL은 직관적이고 효율적으로 복잡한 쿼리를 작성하고 싶을때 사용한다
  • QClass는 QueryDSL에서 쿼리를 타입 안전하게 작성하기 위해 사용하는 메타 모델 클래스이며 각 JPA 엔티티에 대응하는 QClass가 자동으로 생성된다

🎯 오늘 배운 내용

 

QueryDSL이란?

QueryDSL은 타입 안전하고, 직관적인 쿼리 작성 방식을 제공하는 라이브러리입니다

 

 

QueryDSL 설정 방법

import org.jetbrains.kotlin.gradle.tasks.KotlinCompile

plugins {
    kotlin("kapt") version "1.8.22" 
}

val queryDslVersion = "5.0.0"

dependencies {
    implementation("com.querydsl:querydsl-jpa:$queryDslVersion:jakarta") 
    kapt("com.querydsl:querydsl-apt:$queryDslVersion:jakarta") 
}

kapt (Kotlin Annotation Processing Tool)은 Annotation들을 분석하여 QueryDSL에 알려주어 QClass들을 사용할 수 있게 만드는 역할이다

 

QClass란?

Class는 QueryDSL에서 쿼리를 타입 안전하게 작성하기 위해 사용하는 메타 모델 클래스이다. 각 JPA 엔티티에 대응하는 QClass가 자동으로 생성되며, 이 클래스는 해당 엔티티의 필드에 접근하는 타입 안전한 방법을 제공한다.

 

 

🤔 어떻게 활용할까?

QueryDSL을 활용해서 복잡한 쿼리에 대해서 직접 작성이 가능하게 되었다

📓 오늘의 한줄

"The man who knows when to rest is able to go twice as far."

- Theodore Roosevelt -