본문 바로가기

BackEnd : Spring/SpringBoot

[Springboot] SpringBoot 3.x maven+ QueryDSL 설정하기

pom.xml

	<properties>
		<querydsl.version>5.0.0</querydsl.version>
	</properties>
		<dependency>
			<groupId>com.querydsl</groupId>
			<artifactId>querydsl-apt</artifactId>
			<version>${querydsl.version}</version>
			<classifier>jakarta</classifier>
		</dependency>

		<dependency>
			<groupId>com.querydsl</groupId>
			<artifactId>querydsl-jpa</artifactId>
			<classifier>jakarta</classifier>
			<version>${querydsl.version}</version>
		</dependency>

		<dependency>
			<groupId>com.querydsl</groupId>
			<artifactId>querydsl-core</artifactId>
			<version>5.0.0</version>
		</dependency>

기존의 공식문서를 참고하면 plugin도 추가해주어야 하는데, 여러번의 오류와 서치 끝에 spring boot 3 이상 버전과 java 17 이후로 jakarta에서 plugin이 deprecated 되었다는 정보를 확인하였다.

https://samori.tistory.com/60

 

Querydsl + Spring 3.0 + Java17 업데이트 내용! [Maven+Gradle]

Maven을 사용하고 QueryDSL을 사용했다면 기존 아래와 같이 사용했던 apt-maven-plugin 설정이 있을 것이다. com.mysema.maven apt-maven-plugin 1.1.3 process target/generated-sources/java com.querydsl.apt.jpa.JPAAnnotationProcessor

samori.tistory.com

이 글을 참고하였다.

추가로 설정해준 부분은 

https://velog.io/@yulhee741/JPA-QueryDSL-Q-Class-%EC%83%9D%EC%84%B1-%EC%95%88%EB%90%A0-%EB%95%8C

 

[JPA] QueryDSL Q Class 생성 안될 때

pom.xml에 querydsl관련 의존성과, 플러그인을 설정했는데 Q Class가 생성이 되질 않았다.File - Project Structure - Modules 메뉴에 들어가서 target 폴더 아래의 generated-sources 폴더를 소스코드로 인식할 수

velog.io

이 글을 참고하여 File - Project Structure - Modules 메뉴에 들어가서 target 폴더 아래의 generated-sources 폴더를 소스코드로 인식할 수 있게 처리해 주었다.

target 폴더를 삭제하고 다시 compile 해보면 된다.

실행 결과