HomeAboutMeBlogGuest
© 2025 Sejin Cha. All rights reserved.
Built with Next.js, deployed on Vercel
♥️
2기 최종 프로젝트 팀별 공간
/
📚
[팀06] Books
/
💾
엔지니어링 위키
/
🚓
QueryDsl 설정
🚓

QueryDsl 설정

Person
Date
Jul 15, 2022
Tag
기록
비공개

gradle 세팅

buildscript { ext { queryDslVersion = "5.0.0" } } plugins { ... id "com.ewerk.gradle.plugins.querydsl" version "1.0.10" } configurations { ... querydsl.extendsFrom compileClasspath // queryDsl } dependencies { ... implementation "com.querydsl:querydsl-jpa:${queryDslVersion}" implementation "com.querydsl:querydsl-apt:${queryDslVersion}" }
def querydslDir = "$buildDir/generated/querydsl" querydsl { jpa = true querydslSourcesDir = querydslDir } sourceSets { main.java.srcDir querydslDir } compileQuerydsl { options.annotationProcessorPath = configurations.querydsl }
 

Config 파일 작성

@Configuration public class QueryDslConfig { @PersistenceContext private EntityManager entityManager; @Bean public JPAQueryFactory jpaQueryFactory() { return new JPAQueryFactory(entityManager); } }
 

QueryDsl 적용

  1. custom queryDsl repository interface 생성
public interface Query${Entity}Repository { // custom Method-Signature }
  1. queryDsl interface 구현체 작성
@Repository @RequiredArgsConstructor public class Query${Entity}RepositoryImpl implements Query${Entity}Repository { private final JPAQueryFactory jpaQueryFactory; // interface 구현 }
  1. JPA와 연동
public interface ${Entity}Repository extends JpaRepository<${Entity}, Long>, Query${Entity}Repository{ }