본문 바로가기

Spring

[Spring] QueryDSL 사용하기

목차

    1. build.gradle 설정

    Spring Boot 3.0.4 기준

    implementation 'com.querydsl:querydsl-jpa:5.0.0:jakarta'
    annotationProcessor "com.querydsl:querydsl-apt:5.0.0:jakarta"
    annotationProcessor "jakarta.annotation:jakarta.annotation-api"
    annotationProcessor "jakarta.persistence:jakarta.persistence-api"
    
    
    def querydslSrcDir = "$buildDir/generated/querydsl"
    
    clean {
    	delete file(querydslSrcDir)
    }
    
    tasks.withType(JavaCompile) {
    	options.generatedSourceOutputDirectory = file(querydslSrcDir)
    }

    2. QuerydslConfig

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

    3. TestQuerydslConfig

    테스트용 QuerydslConfig 파일을 따로 생성하였다

    Test 폴더에 생성하고 테스트 파일이므로 @Configuration -> @TestConfiguration으로 변경

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

    4. Repository Test

    @DataJpaTest
    @Import(TestQuerydslConfig.class)
    @TestPropertySource(locations = "classpath:application-test.properties")
    public class UserRepositoryTest {
    	...
    }

    위의 코드와 같이 TestQuerydslConfig 클래스를 테스트 코드에서 Import 하면 사용할 수 있다

     

    'Spring' 카테고리의 다른 글

    [Spring test] MongoDB 테스트 설정  (0) 2023.11.05
    [Spring test] Repository Unit Test ManyToOne  (0) 2023.09.26