• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    해결됨

querydslConfig

22.10.27 16:42 작성 조회수 468

2

안녕하세요 강사님.

build.gradle을 build.gradle.kts로 변경하고 QuerydslConfig 를 확인해보니

@Configuration
data class QuerydslConfig(
    private val em: EntityManager
) {
    @Bean
    fun querydsl(): JPAQueryFactory {
        return JPAQueryFactory(em)
    }
}

-> em 부분에 빨간색 밑줄이 뜨고 Could not autowire. No beans of 'EntityManager' type found. 에러가 뜨더라구요.

어떤 부분을 변경해야 빨간 밑줄이 삭제될까요?

답변 1

답변을 작성해보세요.

1

안녕하세요, 진욱님!!! 아이고~~ 정말 좋은 질문이십니다!!!

 

우선 확인해보아야 할 게 있는데요! gradle을 통해 서버를 실행했을 때 서버 실행은 잘 되시나요?!

이게 저희가 코드를 잘못작성해서가 아닌, "실제로는 잘 동작함에도" IntelliJ에서 Bean 인식을 잘못하는 경우가 종종 있더라고요!! 😢

특히 여러 IntelliJ 버전 설치되어 있거나, 옛날 IntelliJ 버전인 경우에 발생하는 것을 보았습니다!!

 

추가로, github에 코드 올려주시면 제가 clone 받아서 IntelliJ로도 확인한번 해보도록 하겠습니다!!

감사합니다!!

하하하님의 프로필

하하하

질문자

2022.10.28

안녕하세요 강사님

https://github.com/kimjinwook1/kotlin-library-app

위 깃허브에 코드 올려두었습니다!

 

위 질문과 동일한 증상 + user 테이블이 생성되지 않는 문제가 발생합니다.

build.gradle.task 설정에서 무언가 잘못된 걸까요? 감을 잡기 어렵네요 :(

 

보통 새로운 프로젝트를 코프링으로 시작할 때 build.gradle 또한 보통 build.gradle.kts 버전으로 사용하는지도 궁금합니다.

안녕하세요! 우선 확인해보니, EntityManager 주입은 IntelliJ 이슈가 맞는 것 같습니다! 🥺

image

올려주신 github을 그대로 연 제 컴퓨터에서는 잘 되는 것처럼 보이네요..!! IntelliJ에 관한 문제인 것 같습니다!! (다른 이야기이지만, 저도 Spring Batch 쪽의 JobBuilderFactory 등은 진욱님과 비슷하게 Bean 인식을 못해 빨간 줄이 나오는데 실행은 정상적으로 잘 됩니다! IntelliJ로 실행시키더라도, gradle 환경으로 돌려보시면 좋을 것 같아요! 관련 글 : https://www.inflearn.com/questions/619558)

 

user 테이블이 생성되지 않는 문제는 아마 https://www.inflearn.com/questions/639215 때문으로 추측됩니다! 현재 사용해주신 spring boot 버전이 2.7.5이기도 하고요!

 

마지막으로, build.gradle 을 kotlin으로 작성하는지에 대해서는, 그런 경우도 있긴한데 아직까지는 groovy를 기반으로 빌드 스크립트를 작성하는 것이 조금 더 일반적인 것 같습니다! 😊 gradle 공식 홈페이지에서도 groovy 기반의 예제를 우선적으로 보여주기도 하고요!

 

혹시 더 궁금하신 내용 있으시다면 편하게 질문 남겨주세요!! 감사합니다!! 🙏