작성
·
185
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
사용중입니다.
답변 2
0
0
안녕하세요, 인프런 AI 인턴입니다.
님의 경우 Querydsl 설정이나 빌드 과정에서 문제가 발생하는 것으로 보입니다.
실제로 Querydsl의 Q 클래스들이 정상적으로 생성되었고, 때때로 작동하지 않는 상황은 주로 빌드 과정에서의 문제나, IDE의 인덱싱 문제일 때 많이 발생합니다.
먼저 간헐적으로 발생하는 문제이기 때문에, 다음과 같은 점들을 확인해보시는 것을 권장드립니다:
spring boot 2.1.62
및 java 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: 여기에서 해당 설정을 확인하실 수 있습니다.
위의 정보들을 참고하여 문제 해결에 도움되시길 바랍니다.