Querydsl | Q Class Symbol Not Found

DoItDev·2021년 10월 30일
0
post-thumbnail

Q class not found error

스크린샷 2021-10-30 오전 10 44 14

q class not found 에러 발생이 되었다.

build clean 하고 compileQuerydsl을 하면 q class 가 생성이 되지만

계속 되는 symbol 에러가 발생이 되었다.

지정되어 있는 파일 PATH 에는 Q Class 가 생성이 되어 있었다.

하지만 인텔리제이에서 인식을 못하는 것 같아보였다.

해결 방법 1

인텔리제이에서 아래와 같이 설정을 하면 해결이 가능하다.

Setting -> Build, Exceution, Devloyment -> Build Tools -> Gradle

위와 같은 경로로 이동을 하고 Build and run using 항목에서 idea로 변경해서

구동을 해보았는데 정상 작동이 되었다.

스크린샷 2021-10-30 오전 11 59 34

해결 방법 2

설명에 앞서서 이 방법은 재기동 할때마다 querydsl 을 컴파일 해주어야 작동이 된다.
참고용으로 남겨 두었다.

  • build.gradle 에 아래의 코드를 추가를 해준다.
  • querydsl 폴더 (q class) 담는 폴더의 존재 유무를 체크 해준다.
  • 체크를 해준 후 true 로 떨어지면 delete file 을 해주는 방법이다.
  • doFirst의 경우 최초의 수행하는 액션을 뜻한다.
  • doLost 도 있지만 추후에 상황이 나오면 다루려고 한다.
compileQuerydsl.doFirst {
    if (file(querydslDir).exists())
        delete(file(querydslDir))
}

build.gradle Full Code

dependencies {
    // add
    implementation 'com.querydsl:querydsl-jpa'
}

//querydsl 추가 시작
def querydslDir = "$buildDir/generated/querydsl"

querydsl {
    jpa = true
    querydslSourcesDir = querydslDir
}

sourceSets {
    main.java.srcDir querydslDir
}

configurations {
    querydsl.extendsFrom compileClasspath
}

compileQuerydsl {
    options.annotationProcessorPath = configurations.querydsl
}

compileQuerydsl.doFirst {
    if (file(querydslDir).exists())
        delete(file(querydslDir))
}
profile
Back-End Engineer

0개의 댓글