티스토리 뷰
Server
[Java] 에러 수정 일지 : required a bean of type 'com.querydsl.jpa.impl.JPAQueryFactory' that could not be found.
니용 2022. 9. 1. 17:52반응형
JPAQueryFactory 를 import 하면서 발생한 오류입니다. 이는 주로 IntelliJ 에서 발생하는 오류인데 @SpringBootApplication 에 scanBasePackages 설정을 해주면 해준다고 나와있습니다. 우선 예시를 보겠습니다.
@Repository
public class ACustomRepositoryImpl extends QuerydslRepositorySupport implements ACustomRepository {
private JPAQueryFactory queryFactory;
public ACustomRepositoryImpl(JPAQueryFactory queryFactory) {
super(A.class);
this.queryFactory = queryFactory;
}
}
이렇게 작성을 하여 생성자를 만들었지만, 아래와 같이 지속적으로 에러가 발생하며 앱이 켜지지 않고 있었습니다.
***************************
APPLICATION FAILED TO START
***************************
Description:
Parameter 0 of constructor in com.estate.appadmin.domain.account.repository.ACustomRepositoryImpl required a bean of type 'com.querydsl.jpa.impl.JPAQueryFactory' that could not be found.
그래서 시도한 방법은 아래와 같습니다.
1. SpringBootApplication 에 추가하기
@SpringBootApplication(scanBasePackages = {"com.package.name"})
public class MainApplication {
...
}
scanBasePackages 를 추가하고 실행해봅니다.
2. @Service, @Repository 등의 어노테이션 확인하기
각각의 Impl 클래스들에 어노테이션이 붙어있지 않아 스프링 자체적으로 발생한 오류일 수 있습니다.
3. IntelliJ 오류
인텔리제이 내에서 종종 발생하는 오류라고 하는데 Files - Invalidate Caches 를 한번 실행해줍니다.
4. JPAConfig 파일 생성하기
최종적으로 아래의 환경 설정 파일을 생성하지 않아서 발생한 에러로 판명이 되었습니다. 아래의 파일은 EntityManager를 설정해주는 소스입니다.
@Configuration
@EnableJpaAuditing
@EnableJpaRepositories(basePackages = "com.package.name")
public class JPAConfig {
@PersistenceContext
private EntityManager entityManager;
@Bean
public JPAQueryFactory queryFactory() {
return new JPAQueryFactory(entityManager);
}
}
반응형
'Server' 카테고리의 다른 글
VI / Vim 명령어 모음 (2) (0) | 2022.09.05 |
---|---|
Vi / Vim 명령어 모음, 더 잘 활용하기 (0) | 2022.09.04 |
QueryDSL 을 사용하면서 발생한 에러 일지 (NoClassDefFoundError) (2) | 2022.09.02 |
DataGrip Mysqldump 사용방법 (5) | 2022.08.18 |
LetsEncrypt SSL 인증서 갱신/삭제방법 및 자동갱신 적용하기 (0) | 2022.08.17 |
Docker Compose 사용법 (2) | 2022.08.16 |
댓글
공지사항