티스토리 뷰

 

1. build.gradle 에 의존성 추가 및 Q class 설정

// ************* 최상단
buildscript {
    ext {
        queryDslVersion = "5.0.0"
    }
}



// ************* 의존성 부분
// queryDSL 설정
    implementation "com.querydsl:querydsl-jpa:${queryDslVersion}:jakarta"
    implementation "com.querydsl:querydsl-core"
    implementation "com.querydsl:querydsl-collections"

    annotationProcessor "com.querydsl:querydsl-apt:${queryDslVersion}:jakarta" // querydsl JPAAnnotationProcessor 사용 지정
    annotationProcessor "jakarta.annotation:jakarta.annotation-api" // java.lang.NoClassDefFoundError (javax.annotation.Generated) 대응 코드
    annotationProcessor "jakarta.persistence:jakarta.persistence-api" // java.lang.NoClassDefFoundError (javax.annotation.Entity) 대응 코드



// ************* 하단
// Querydsl 설정부
def querydslDir = 'src/main/generated'

// querydsl QClass 파일 생성 위치를 지정
tasks.withType(JavaCompile) {
    options.getGeneratedSourceOutputDirectory().set(file(querydslDir))
}

// java source set 에 querydsl QClass 위치 추가
sourceSets {
    main.java.srcDirs += [querydslDir]
}

// gradle clean 시에 QClass 디렉토리 삭제
clean {
    delete file(querydslDir)
}

 

2. ".gitignore" 파일에 추가

/src/main/generated/

 

 

* 발생할 수 있는 오류들 해결

1. java.lang.NoClassDefFoundError:javax/persistence/Entity
2. attempt to recreate a file for type qclass
3. could not find class file for querydsl
4. Unable to load class 'javax.persistence.Entity'.

 

 

 

댓글
Total
최근에 올라온 글