QueryDSL 은 Query Domain Specific Language 의 약자로 쿼리를 코드로 작성할 수 있도록 해주는 쿼리 빌더 프레임워크
QueryDSL은 자바코드로 쿼리를 작성할 수 있으며, JPA, JDO, Hibernate, MongoDB, SQL, Lucene 등 다양한 데이터베이스를 지원합니다. QueryDSL은 코드 자동 완성 기능을 제공하므로 오타나 잘못된 쿼리를 작성하는 일을 방지하며, 런타임 오류를 방지할 수 있습니다.
Plugin 추가
plugins { id 'org.springframework.boot' version ‘2.2.2.RELEASE' id 'io.spring.dependency-management' version '1.0.8.RELEASE' //querydsl 추가 id "com.ewerk.gradle.plugins.querydsl" version "1.0.10" id 'java' }
라이브러리 추가
//querydsl 추가 implementation 'com.querydsl:querydsl-jpa'
//querydsl 추가 시작 defquerydslDir="$buildDir/generated/querydsl" querydsl { jpa = true querydslSourcesDir= querydslDir } sourceSets { main.java.srcDir querydslDir } configurations { querydsl.extendsFrom compileClasspath } compileQuerydsl { options.annotationProcessorPath = configurations.querydsl } //querydsl 추가 끝
Unable to load class ‘com.mysema.codegen.model.Type’. 에러
위 Error 는 Gradle 5.0 이상에서 발생하는 Error 다. 해결하기 위해서는 아래와 같이 설정해주면 된다.
buildscript { ext { queryDslVersion = "5.0.0" } }
plugins { id 'org.springframework.boot' version '2.6.2' id 'io.spring.dependency-management' version '1.0.11.RELEASE'//querydsl 추가 id "com.ewerk.gradle.plugins.querydsl" version "1.0.10" id 'java' }
group = 'com.example' version = '0.0.1-SNAPSHOT' sourceCompatibility = '11'