Programing/Spring Boot

Querydsl 에러 Could not autowire. No beans of 'JPAQueryFactory' type found. 에러

딩코딩 2023. 6. 30. 08:47

JPAQueryFactory를 자동 주입할 수 없는 오류가 발생하고 있습니다. 이 문제를 해결하기 위해 다음과 같은 접근 방법을 시도해 볼 수 있습니다.

 

1. JPAQueryFactory의 빈을 정의하기: JPAQueryFactory는 Spring Data JPA Querydsl을 사용할 때 자동으로 생성되는 빈이 아닙니다. 따라서 JPAQueryFactory의 빈을 직접 정의해야 합니다. 아래와 같이 @Configuration 어노테이션이 지정된 클래스를 생성하고, JPAQueryFactory 빈을 정의해줍니다.

import com.querydsl.jpa.impl.JPAQueryFactory
import org.springframework.context.annotation.Bean
import org.springframework.context.annotation.Configuration
import javax.persistence.EntityManager

class QuerydslConfig {
	@Configuration
	class QuerydslConfiguration(private val entityManager: EntityManager) {
		@Bean
		fun jpaQueryFactory(): JPAQueryFactory {
		return JPAQueryFactory(entityManager)
		}
	}
}

 

2. AdminAcademyDaoCustomImpl@Repository 어노테이션 추가: AdminAcademyDaoCustomImpl 클래스에 @Repository 어노테이션을 추가하여 스프링에게 해당 클래스를 빈으로 등록하도록 알려줍니다.

@Repository
class AdminAcademyDaoCustomImpl : AdminAcademyDaoCustom {
    // ...
}