스프링부트 : QueryDSL

- 설정 (build.gradle)
    
    ```
    buildscript {
    	ext {
    		queryDslVersion = "5.0.0"
    	}
    }
    
    configurations {
    	compileOnly {
    		extendsFrom annotationProcessor
    	}
    }
    
    dependencies{
    	... 
        //querydsl 설정 추가
    	implementation 'com.querydsl:querydsl-jpa:5.0.0:jakarta'
    	annotationProcessor "com.querydsl:querydsl-apt:${dependencyManagement.importedProperties['querydsl.version']}:jakarta"
    	annotationProcessor "jakarta.annotation:jakarta.annotation-api"
    	annotationProcessor "jakarta.persistence:jakarta.persistence-api"
    }
    
    // Querydsl 설정부
    def generated = 'src/main/generated'
    
    // querydsl QClass 파일 생성 위치를 지정
    tasks.withType(JavaCompile) {
    	options.getGeneratedSourceOutputDirectory().set(file(generated))
    }
    
    // java source set 에 querydsl QClass 위치 추가
    sourceSets {
    	main.java.srcDirs += [ generated ]
    }
    
    // gradle clean 시에 QClass 디렉토리 삭제
    clean {
    	delete file(generated)
    }
    ```
    
- @Configuration
    
    ```java
    @Configuration
    public class QueryDslConfig {
    
        @Autowired private EntityManager em;
    
        @Bean
        public JPAQueryFactory jpaQueryFactory(){
            return new JPAQueryFactory(em);
        }
    }
    ```
    

## 참고문헌

[Querydsl Reference Guide](http://querydsl.com/static/querydsl/5.0.0/reference/html_single/)


댓글

이 블로그의 인기 게시물

Session 대신 JWT를 사용하는 이유

VSCode에서의 VIM 단축키와 키보드 구매 가이드

우분투에서 테스트링크(testlink)와 맨티스(mantis)로 테스팅 서버 구성하기