inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

query dsl 간헐적으로 작동 안 하는경우

287

카게호

작성한 질문수 1

0

안녕하세요 강사님 강의 덕분에 잘 배우고 졸업을 앞두고 있는 학생입니다.

jpa domain을 nexus에 올려 실제 프로젝트에 dependency를 추가하여 사용하고 있었는데

도메인이 수정될 때마다 nexus에 배포하고 dependency 버전을 변경해야하는 번거로움 때문에 하나로 합치는 작업을 했습니다.

실제 프로젝트로 합쳐진 entity들이 잘 import 될 수 있도록 경로도 다 수정해주고 qclass도 정상적으로 생성되었으나 프로젝트 재구동시 간헐적으로 querydsl이 작동하지 않는 오류가 있습니다...

qclass도 잘 import 됐고 정상 작동될 때는 잘 되다가 재구동 2~3번에 한번꼴로 qclass를 참조하는 api는 작동하지 않습니다...

qclass 사용하지 않는 api들은 정상 작동합니다.. 간헐적으로 오류가 나니 컴파일시점에 메모리가 부족하여 qclass 생성을 제대로 못 해주나 싶어서 heap 사이즈도 늘려보았으나 똑같은 상황입니다.

 

디버그 모드로 확인하니 QMember a = new QMember(); 이 코드 까지는 오는데 다음 프로세스로 넘어가지도 않고 에러 로그또한 찍히지 않으며 그냥 끝나버리는 것 같습니다.

 

혹시 왜 이런 현상이 나는지 알려주실 수 있나요 ㅠㅠ

 

spring boot 2.1.62

java 1.8

querydsl 4.4.0

 

사용중입니다.

java spring mvc spring-boot

답변 2

0

김영한

안녕하세요. 카게호님

Querydsl 관련해서는 Querydsl 강의 게시판에 문의 올려주세요.

감사합니다.

0

인프런 AI 인턴

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

님의 경우 Querydsl 설정이나 빌드 과정에서 문제가 발생하는 것으로 보입니다.
실제로 Querydsl의 Q 클래스들이 정상적으로 생성되었고, 때때로 작동하지 않는 상황은 주로 빌드 과정에서의 문제나, IDE의 인덱싱 문제일 때 많이 발생합니다.

먼저 간헐적으로 발생하는 문제이기 때문에, 다음과 같은 점들을 확인해보시는 것을 권장드립니다:

  1. Gradle이나 Maven 등의 빌드 도구의 clean 후에 build나 compileJava 등의 태스크를 수행하여 Q 클래스가 정상적으로 재생성되는지 확인하세요.
  2. IDE의 캐시 문제일 수 있으므로, IntelliJ나 Eclipse 등의 IDE 캐시를 인발리데이트 한 다음, 프로젝트를 재시작해보세요.
  3. 메모리 문제를 의심하셨는데, JVM 옵션에서 Xms와 Xmx값을 적절하게 조정하여, IDE와 프로젝트 빌드 프로세스에 충분한 메모리를 할당해주세요.
  4. 프로젝트 설정에서 Q 클래스가 생성되는 경로가 전역적으로 인식되고 있는지 확인하시고, .gitignore나 다른 설정 파일에서 해당 경로가 제외되지 않았는지도 확인해보세요.

spring boot 2.1.62java 1.8, querydsl 4.4.0 사용 중이라고 하셨는데, 가능하다면 스프링 부트나 Querydsl의 버전을 업데이트 해보는 것도 한 방법일 수 있습니다. 이전 답변에서 인용된 정보에 따르면 build.gradle에 Querydsl 관련 설정이 있는 예제가 있었으니 참고해보셔도 좋을 것 같습니다. 현재 상황과 가장 유사한 환경을 위해 스프링 부트 2.x 설정을 참고하세요.

plugins {
    id 'org.springframework.boot' version '2.6.5'
    id 'io.spring.dependency-management' version '1.0.11.RELEASE'
    id 'java'
}
...
dependencies {
    ...
    // Querydsl 추가
    implementation 'com.querydsl:querydsl-jpa'
    annotationProcessor "com.querydsl:querydsl-apt:${dependencyManagement.importedProperties['querydsl.version']}:jpa"
    annotationProcessor "jakarta.annotation:jakarta.annotation-api"
    annotationProcessor "jakarta.persistence:jakarta.persistence-api"
    ...
}
...

원본 문서 URL: 여기에서 해당 설정을 확인하실 수 있습니다.

위의 정보들을 참고하여 문제 해결에 도움되시길 바랍니다.

..

0

76

2

Unused property.....

0

102

2

project JDK is misconfigured

0

132

2

외부 API의 ID 타입(String/UUID)과 내부 도메인의 ID 타입(Long)이 불일치할 때의 설계 정석

0

83

2

단위/통합 테스트 버전충돌 문제

0

91

2

❗️springboot 4.0.2 버전 aspectj dependency 설정❗️

0

230

1

왜 컨트롤러는 변한게 없는데 새로 만든 html 파일이 뜨나요?

0

104

2

윈도우 build test오류 질문

1

103

2

테스트 관련 공부에 대한 조언을 얻고 싶습니다

0

101

2

테스트 실행 시 에러 질문

0

292

1

name을 통한 비교와 객체를 통한 비교

0

77

1

빌드 후 libs 없음

1

129

1

윈도우 gradlew.bat 에러

0

168

1

@PostMapping("/members/new")가 동작하지 않습니다

0

90

1

java static class와 kotlin class

0

79

1

스프링 DB연결

0

127

1

소요 시간

0

87

2

ddl.sql에 빨간 밑줄

1

102

2

welcome page 에러

0

183

3

잘 모르겠습니다.

0

164

2

fail을 똑같이 쳤는데 오류가 발생해요

0

157

2

index.html Welcome page

0

125

1

프로젝트 gradle-groovy ?

0

370

1

테스트코드 메서드명 한글

0

202

2