diff --git a/BE/airbnb/build.gradle b/BE/airbnb/build.gradle index f3ff9243b..edf2fa53e 100644 --- a/BE/airbnb/build.gradle +++ b/BE/airbnb/build.gradle @@ -1,6 +1,7 @@ plugins { id 'org.springframework.boot' version '2.4.5' id 'io.spring.dependency-management' version '1.0.11.RELEASE' + id "com.ewerk.gradle.plugins.querydsl" version "1.0.10" id 'java' } @@ -14,6 +15,8 @@ repositories { dependencies { implementation 'org.springframework.boot:spring-boot-starter-data-jpa' + implementation 'com.querydsl:querydsl-jpa' + implementation 'org.springframework.boot:spring-boot-starter-validation' implementation 'org.springframework.boot:spring-boot-starter-data-jdbc' implementation 'org.springframework.boot:spring-boot-starter-web' compileOnly 'org.projectlombok:lombok' @@ -25,3 +28,20 @@ dependencies { test { useJUnitPlatform() } + +def querydslDir = "$buildDir/generated/querydsl" + +querydsl { + jpa = true + querydslSourcesDir = querydslDir +} +sourceSets { + main.java.srcDir querydslDir +} +configurations { + querydsl.extendsFrom compileClasspath +} + +compileQuerydsl { + options.annotationProcessorPath = configurations.querydsl +} diff --git a/BE/airbnb/src/main/java/airbnb/config/QueryDSLConfig.java b/BE/airbnb/src/main/java/airbnb/config/QueryDSLConfig.java new file mode 100644 index 000000000..7a0932558 --- /dev/null +++ b/BE/airbnb/src/main/java/airbnb/config/QueryDSLConfig.java @@ -0,0 +1,19 @@ +package airbnb.config; + +import com.querydsl.jpa.impl.JPAQueryFactory; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +import javax.persistence.EntityManager; +import javax.persistence.PersistenceContext; + +@Configuration +public class QueryDSLConfig { + @PersistenceContext + private EntityManager entityManager; + + @Bean + public JPAQueryFactory jpaQueryFactory() { + return new JPAQueryFactory(entityManager); + } +}