728x90
반응형
SMALL

업데이트 (2024.12.21)


 

Spring Data JPA와 같이 사용하면 막강의 쿼리 작성을 할 수 있는 QueryDSL을 프로젝트에 설정하는 방법을 기록하고자 한다.

하도 버전에 따라 설치하는 방법이 달라져서 스프링 부트 3.1.5, Gradle에서 설치하는 방법을 작성했다. (아마 3.x.x라면 다 이 방법으로 하면 되지 않을까 싶다)

 

버전 정보

Software or Framework Version
Spring Boot 3.4.1
QueryDSL 5.1.0
Gradle 8.4
JDK 21

 

SMALL

 

시작하기

우선, build.gradle 파일에서 아래와 같은 dependencies를 추가해준다.

 

build.gradle

// Querydsl
implementation 'com.querydsl:querydsl-jpa:5.1.0:jakarta'
annotationProcessor "com.querydsl:querydsl-apt:5.1.0:jakarta"
annotationProcessor "jakarta.annotation:jakarta.annotation-api"
annotationProcessor "jakarta.persistence:jakarta.persistence-api"

 

그리고, 같은 파일에서 아래와 같은 설정이 필요하다.

// querydsl directory path
def querydslDir = "src/main/generated"

// querydsl directory 를 자동 임포트 할 수 있게 설정
sourceSets {
    main.java.srcDirs += [ querydslDir ]
}

// task 중 compileJava 를 실행하면 Q 클래스 파일들을 생성
tasks.withType(JavaCompile).configureEach {
    options.getGeneratedSourceOutputDirectory().set(file(querydslDir))
}

// clean 을 하면 querydsl directory 를 삭제
clean.doLast {
    file(querydslDir).deleteDir()
}

 

이렇게 설정을 하고 gradle을 다시 빌드하면 된다. 다시 빌드하고 나면 이제 QueryDsl에서 반드시 필요한 파일인 Q파일을 생성해야 하는데 생성하기 위해 우측 gradle > (artifact 명) > Tasks > other > compileJava를 실행하면 된다.

 

결과

이를 실행하면 설정한 경로에 맞게 좌측 트리에서 찾아보면 다음과 같이 Q 파일들이 정상적으로 생성되었음을 알 수 있다.

 

728x90
반응형
LIST

'Querydsl' 카테고리의 다른 글

참고: 리포지토리 지원 - QuerydslRepositorySupport  (0) 2024.12.30
JPA 레포지토리와 Querydsl  (2) 2024.12.26
Querydsl 중급 문법  (0) 2024.12.22
Querydsl 기본 문법  (0) 2024.12.21
[Renewal] QueryDsl  (0) 2024.12.07
728x90
반응형
SMALL
SMALL

회사에서 새로운 프로젝트를 진행할 때 이번엔 Maven말고 Gradle을 사용해보고 싶어서 로컬에서는 아무 문제가 없었는데 물리서버에 코드를 옮기고 빌드할 때 이러한 에러가 발생했다.

java.lang.UnsupportedClassVersionError:  
org/springframework/boot/gradle/plugin/SpringBootPlugin 
has been compiled by a more recent version of the Java Runtime (class file version 61.0),
this version of the Java Runtime only recognizes class file versions up to 52.0

이 에러 내용만을 읽어봤을 땐 현재 사용하는 JRE가 클래스 파일의 버전 52까지만 수용할 수 있는듯하고 이 경로 org/springframework/boot/gradle/plugin/SpringBootPlugin의 클래스 파일의 버전은 61이라 버전 미스매치가 된 것 같다.

 

해결하는 방법은 그냥 현재 물리서버에서 사용중인 JRE 버전이 로컬에서 사용한 JRE 버전보다 낮고 허용가능한 범위를 벗어났으니 JRE 버전을 높이면 된다. 아래는 클래스 파일의 버전과 호환 가능한 JRE 버전이다.

49 = Java 5
50 = Java 6
51 = Java 7
52 = Java 8
53 = Java 9
54 = Java 10
55 = Java 11
56 = Java 12
57 = Java 13
58 = Java 14
59 = Java 15
60 = Java 16
61 = Java 17
62 = Java 18
63 = Java 19
64 = Java 20
65 = Java 21

 

 

728x90
반응형
LIST

+ Recent posts