인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

김종민님의 프로필 이미지

작성한 질문수

코드로 배우는 React with 스프링부트 API서버

Querydsl설정하기

querydsl QTodo관련 문의

작성

·

39

0

안녕하세요.

 

강의를 듣다가 QTodo 사용하는 시점에서 문제가 발생하여 문의드립니다.

 

gradle 빌드시점에 QTodo 클래스를 생성하는 것 까진 확인을 하였는데 search1 메소드에서 QTodo를 사용하려고 하니 클래스 인식 자체를 못하고 있습니다.(import도 안됨) 강의 내용상으로 봤을 때 build 디렉토리에서 인위적으로 복사한 것 같진 않은데 해당 클래스를 어떻게 import해서 사용해야 할지 몰라서 문의드립니다.

image.png

 

springboot 버전은 3.3.10입니다.

 

답변 3

0

Link님의 프로필 이미지

QueryDSL 인식하는 방법에 대한 글 적어둔 것이니 참고하세요.

https://link2me.tistory.com/2484

https://link2me.tistory.com/2485

0

구멍가게코딩단님의 프로필 이미지
구멍가게코딩단
지식공유자

import 하는 패키지는 엔티티 클래스가 존재하는 곳과 동일합니다.

 

Gradle 명령어를 이용해서 compileJava를 실행하신 후에 QTodo 클래스를 사용할 수 있는 상황이 정상적인 상황입니다. 실행후에 해당 클래스가 만들어지는지 확인해 주세요

 

위의 코드에서는 import org.zerock.apiserver.domain.QTodo 로 했을 때 에러가 없어야 합니다.

 

혹시 build.gradle의 설정이 문제일 수도 있으니 해결이 안되시면 코드를 다운로드해서 실행해 볼 수 있도록 깃헙 링크등을 남겨주세요

0

인프런 AI 인턴님의 프로필 이미지

안녕하세요, 인프런 AI 인턴입니다.

김종민님께서 말씀하신 문제는 Querydsl과 관련한 설정 환경에 대한 일반적인 문제로 보입니다. Querydsl을 사용할 때 Q 객체가 생성되지 않거나, import가 되지 않을 때 발생할 수 있는 여러 가지 원인이 있습니다.

다음은 문제 해결을 위한 몇 가지 검토 사항입니다:

  1. Querydsl 플러그인 및 설정 확인:

    • Gradle 설정 파일(build.gradle)에서 Querydsl 관련 플러그인이 올바르게 설정되어 있는지 확인하세요. 예를 들어, javaquerydsl 플러그인이 제대로 적용되어 있는지 확인이 필요합니다.
    plugins {
        ...
        id "com.ewerk.gradle.plugins.querydsl" version "1.0.10"
    }
    
    
    querydsl {
        jpa = true
    }
    
  2. Annotation Processors 확인:

    • Querydsl은 Annotation Processor로 동작하여 컴파일 타임에 Q 클래스를 생성합니다. 이를 위해 IDE에서 Annotation Processor가 활성화되어 있는지 확인하세요.
  3. 소스 경로 확인:

    • build/generated 폴더 아래에 sources/apt/main 또는 querydsl 경로에 생선된 QTodo.java 파일이 있는지 확인해보세요.
  4. 재빌드 및 클린:

    • 프로젝트를 클린 후, 다시 빌드 및 컴파일해 보세요. 때로는 IDE가 캐싱 이슈로 인해 변경 사항을 인지하지 못할 수 있습니다.
  5. Gradle 버전 충돌 확인:

    • 사용하는 Gradle 또는 Spring Boot 버전이 Querydsl 버전과 충돌하는 경우도 있으니, compatible 버전을 사용하고 있는지 확인해 보세요.

유사한 사례 해결 방안

  • “QTodo Class Not found” 질문에서 유사한 상황에 대한 답변을 제공하고 있습니다. Todo 클래스를 수정 후 재컴파일하여 문제를 해결했던 사례가 있습니다.

위의 내용이 도움이 되지 않는 경우, 추가적인 로그나 오류 메시지를 공유해 주시면 더 상세히 도와드릴 수 있을 것입니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.