본문 바로가기
Error Handling Log

QueryDsl-required a bean of type 'com.querydsl.jpa.impl.JPAQueryFactory' 해결방법

by GGShin 2022. 10. 8.

QueryDsl을 적용하고 애플리케이션 run을 하는데, "required a bean of type 'com.querydsl.jpa.impl.JPAQueryFactory' that could not be found." 라는 에러가 발생했습니다.

bean 등록 관련 에러이기에 @Component annotation 여부를 확인했고, 다 제대로 애노테이션이 붙어있었기에 어떻게 해결하면 좋을지 알기 어려웠습니다. 

 

그러던 중에 JPA configuration을 따로 설정해주어야 한다는 글을 읽게 되었고 해당 방식으로 해결하였습니다.

package com.courseori.server.config;

import com.querydsl.jpa.impl.JPAQueryFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.jpa.repository.config.EnableJpaAuditing;
import org.springframework.data.jpa.repository.config.EnableJpaRepositories;

import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;

@Configuration
@EnableJpaAuditing
@EnableJpaRepositories(basePackages = "com.courseori.server")
public class JPAConfig {

    @PersistenceContext
    private EntityManager entityManager;

    @Bean
    public JPAQueryFactory queryFactory() {
        return new JPAQueryFactory(entityManager);
    }
}

 

QueryDsl에서 사용하는 JPAQueryFactory에 사용될 EntityManager를 설정해주니 해결이 된 것 같습니다. :)

역시 새로운 기능을 사용하려면 작동 방법을 제대로 알고 사용해야 이후에 탈이 없는 것 같습니다 🥹 

 


참고자료

 

https://abbo.tistory.com/321

 

에러 수정 일지 : required a bean of type 'com.querydsl.jpa.impl.JPAQueryFactory' that could not be found.

JPAQueryFactory 를 import 하면서 발생한 오류입니다. 이는 주로 IntelliJ 에서 발생하는 오류인데 @SpringBootApplication 에 scanBasePackages 설정을 해주면 해준다고 나와있습니다. 우선 예시를 보겠습니다...

abbo.tistory.com

 

https://otrodevym.tistory.com/entry/spring-boot-%EC%84%A4%EC%A0%95%ED%95%98%EA%B8%B0-6-querydslJPA-%EC%84%A4%EC%A0%95-%EB%B0%8F-%ED%85%8C%EC%8A%A4%ED%8A%B8-%EC%86%8C%EC%8A%A4

 

[spring boot 설정하기-6] querydsl(+JPA) 설정 및 테스트 소스

쿼리를 소스로 작성해야 하는 경우가 있는데 세련 된 방식으로 사용할 수 있도록 도와줍니다. SQL, JPQL을 코드로 작성을 도와주는 빌더 API입니다. JPA에서 제공하는 @Query에서 다양한 조회를 하기

otrodevym.tistory.com

 

https://jojoldu.tistory.com/372

 

Spring Boot Data Jpa 프로젝트에 Querydsl 적용하기

안녕하세요? 이번 시간에는 Spring Boot Data Jpa 프로젝트에 Querydsl을 적용하는 방법을 소개 드리겠습니다. 모든 코드는 Github에 있습니다. Spring Data Jpa를 써보신 분들은 아시겠지만, 기본으로 제공해

jojoldu.tistory.com

 

반응형