[스프링] QueryDsl gradle 설정

SOL·2023년 2월 28일
0

spring

목록 보기
1/4

스프링부트 3.0 미만과 3.0 이상에서 querydsl 설정하는 방법이 다름.

스프링부트 3.0 미만

dependencies {
...
 implementation 'com.querydsl:querydsl-jpa'
 annotationProcessor "com.querydsl:querydsl-apt:${dependencyManagement.importedProperties['querydsl.version']}:jpa"
...
}

스프링부트 3.0 이상

dependencies {
...
 implementation 'com.querydsl:querydsl-jpa:5.0.0:jakarta'
 annotationProcessor "com.querydsl:querydsl-apt:${dependencyManagement.importedProperties['querydsl.version']}:jakarta"
...
}

plugin 입력은 권장사항

plugins {
...
 id "com.ewerk.gradle.plugins.querydsl" version "1.0.10" 
...
}

java.lang.NoClassDefFoundError (javax[or jakarta].annotation.Generated) 에러 대응 코드

dependencies {
...
 annotationProcessor "jakarta.annotation:jakarta.annotation-api"
...
}

java.lang.NoClassDefFoundError (javax[or jakarta].annotation.Entity) 에러 대응 코드

dependencies {
...
 annotationProcessor "jakarta.persistence:jakarta.persistence-api"
...
}

querydsl 설정

  // Querydsl 설정부
  def generated = 'src/main/generated'

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

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

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

참고


https://velog.io/@juhyeon1114/Spring-QueryDsl-gradle-설정-Spring-boot-3.0-이상

0개의 댓글