흰 스타렉스에서 내가 내리지

QueryDSL 세팅 본문

JPA

QueryDSL 세팅

주씨. 2024. 4. 14. 16:36
728x90

1. Dependency 설치

dependencies {
    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"
}

 

 

2. Configuration

프로젝트 어디에서나 접근할 수 있도록, QueryDSL 빈을 생성한다. 

이때 EntityManager 도 여기서 주입해 놓는다.

@Configuration
@RequiredArgsConstructor
public class QueryDSLConfig {
    private final EntityManager em;

    @Bean
    public JPAQueryFactory jpaQueryFactory() {
        return new JPAQueryFactory(em);
    }
}

 

 

3. Repository 에서 사용

@Repository
@RequiredArgsConstructor
public class MemberRepositoryImpl implements MemberRepository {
    private final JPAQueryFactory query;

    @Override
    public boolean existsByEmail(String email) {
        return query.selectOne()
                .from(member)
                .where(member.email.eq(email))
                .fetchFirst() != null;
    }
}