Querydsl์ ๋ํ ์ฟผ๋ฆฌ ์ ํ์ ์์ฑํ๋๋ก gradle์ ๊ตฌ์ฑํ ์ ์์ต๋๋ค. #2444์ ๊ฐ์ ์กฐ์ธ์ ๋ฐ๋ผ ๋ด ๊ตฌ์ฑ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
plugins {
id 'org.springframework.boot' version '2.3.1.RELEASE'
id 'io.spring.dependency-management' version '1.0.9.RELEASE'
id 'java'
}
group = 'com.example'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '11'
repositories {
mavenCentral()
}
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-data-mongodb'
implementation 'org.springframework.boot:spring-boot-starter-web'
compile 'com.querydsl:querydsl-mongodb:4.3.1'
annotationProcessor 'com.querydsl:querydsl-apt:4.3.1:morphia'
annotationProcessor 'org.springframework.boot:spring-boot-starter-data-mongodb'
}
์ฟผ๋ฆฌ ์ ํ์ด ์์ฑ๋์ง ์์ต๋๋ค.
Gradle ๋ฒ์ : 6.4.1
๋ถํํ๋ ๋ฌธ์๋ maven์ ๋ํ ๊ตฌ์ฑ๋ง ์ ๊ณตํ๋ฉฐ ์น์ ๋ค๋ฅธ ๋ชจ๋ ๊ฐ์ด๋๋ ๋ ์ด์ ์ฌ์ฉ๋์ง ์๋ ๊ฒ ๊ฐ์ต๋๋ค.
์ํ ์ ์ฅ์: https://github.com/viktorgt/spring-mongo-querydsl
์๋
ํ์ธ์ @viktorgt ์ด๊ฒ์ ์๋ํ์ญ์์ค. ๋๋ ์ด๊ฒ์ผ๋ก Q-Classes๋ฅผ ์์ฑํ ์ ์์ต๋๋ค. ๊ทธ๊ฒ์ด ๋น์ ๊ณผ ์ ๋ฅผ ์ํด ์คํ๋๊ธฐ๋ฅผ ๋ฐ๋๋๋ค. ์ฐธ๊ณ ์ ๋ Morphia ์ฃผ์๊ณผ ์ข
์์ฑ์ ์ฌ์ฉํ์ง ์๊ณ ๋์ @com.querydsl.core.annotations.QueryEntity
๋ฐ build.gradle ์ฌ์ฉ
configurations {
compileOnly {
extendsFrom annotationProcessor
}
}
dependencies {
//your general spring data and other spring dependencies
compileOnly 'com.querydsl:querydsl-apt'
compile 'com.querydsl:querydsl-mongodb:4.3.1'
compile 'com.querydsl:querydsl-core'
annotationProcessor ('com.querydsl:querydsl-apt:4.3.1:general', 'javax.annotation:javax.annotation-api')
}
//Your path can be as per your choice of source directory for the Q-Classes mine is /src/main/generated/
def queryDslOutput = file(new File(projectDir, '/src/main/generated/'))
sourceSets {
generated {
java {
srcDir queryDslOutput
}
}
}
compileJava {
options.compilerArgs << '-s'
options.compilerArgs << "$projectDir/src/main/generated/"
doFirst {
file(new File(projectDir, '/src/main/generated/')).mkdirs();
}
}
ํธ์ง : JPA ์ฃผ์ ๋๋ Spring-Data-JPA๋ ์ฌ์ฉํ์ง ์์ต๋๋ค.
Gradle ๋ฒ์ : 6.5
์ถ์ : ์ ๋ Github๋ฅผ ์ฒ์ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ์ด ๋๊ธ์ ์ฌ๋ฌ ๋ฒ ํธ์งํ์ต๋๋ค.
@somudas93 ๊ฐ์ฌํฉ๋๋ค. ์ด๊ฒ์ ์ค์ ๋ก ์๋ํฉ๋๋ค ๐
์ฐ๋ฆฌ๋ ๋ํ ์ถ๊ฐ ํ ์ delete(files("${projectDir}/src/main/generated/"))
์์ doFirst
์ ๋ถ๋ถ compileJava
๋ณํ๊ฐ ๋ฌด์๋ฉ๋๋ค, ๊ทธ๋์ ์ค๋๋ ํ์ผ.