Spring Data JPA

Spring JPA [SpringBoot3.x.x] - Querydsl 적용하고 빌드하기

Stark97 2023. 8. 8. 00:38
반응형

SpringBoot3버전에서 Querydsl을 적용하는법이 2버전과 다르게 변경되었다. 

 

 1. Build.gradle을 설정한다.

  • 아래와 같이 querydsl설정을 해준다.
  • QClass를 만들때는 스프링부트 2.x.x처럼 compileQuerydsl로 하는게 아니라 compileJava를 실행해서 진행한다.(그냥 빌드도됨)
  • 이런 이슈는 gradle은 꾸준히 업그레이드 되고있지만 querydsl은 업데이트가 되지 않아서 그런것같다.
plugins {
	id 'java'
	id 'org.springframework.boot' version '3.1.1'
	id 'io.spring.dependency-management' version '1.1.0'
}

group = 'com.jinan'
version = '0.0.1-SNAPSHOT'

java {
	sourceCompatibility = '17'
}


repositories {
	mavenCentral()
}

dependencies {

	// web + jpa
	implementation 'org.springframework.boot:spring-boot-starter-web'
	implementation 'org.springframework.boot:spring-boot-starter-data-jpa'

	// queryDsl
	implementation 'com.querydsl:querydsl-core:5.0.0'
	implementation 'com.querydsl:querydsl-jpa:5.0.0:jakarta'

	annotationProcessor "com.querydsl:querydsl-apt:5.0.0:jakarta"
	annotationProcessor 'jakarta.persistence:jakarta.persistence-api'
	annotationProcessor 'jakarta.annotation:jakarta.annotation-api'


	// database
	runtimeOnly 'com.h2database:h2'
	runtimeOnly 'com.mysql:mysql-connector-j'

	// test
	annotationProcessor 'org.projectlombok:lombok'
	testImplementation 'org.springframework.boot:spring-boot-starter-test'
	testImplementation 'org.springframework.security:spring-security-test'
}

tasks.named('test') {
	useJUnitPlatform()
}

2. 인텔리제이에서 Gradle 탭을 클릭하고 build를 하자

  • 여기선 2가지 방법이있는데 Tasks -> build -> clean 후 build를 해주거나
  • Tasks -> other -> compileJava를 실행한다.
  • 위의 2가지 방법을 해줘야 Querydsl의 Qclass가 생성되어 사용할수가 있다.

  • build 또는 compileJava를 실행시켜주면 프로젝트에 다음과 같은 폴더가 생성된다.
    • 조금 살펴보자면 build -> generated -> sources -> annotationProcessor -> java -> main -> 내 프로젝트 경로 -> 엔티티가 존재하는 패키지 -> 엔티티 패키지명 -> Q엔티티 이런식으로 생성된다.
    • 조금 더 추가적인 설정을 하면 Q엔티티가 생성되는 경로도 정할수있지만 이렇게 사용해도 문제가 없었다.

3. gitIgnore 설정

  • gitIgnore에 Qclass형태의 엔티티들을 넣어주자 
  • 아래와 같이 gitignore 파일에 넣어준다.
### QEntity
src/main/generated/*

 

 

 

2023.08.08 - [JPA] - SpringBoot3.1 - Querydsl 사용

 

SpringBoot3.1 - Querydsl 사용

이전 포스팅에서 querydsl적용을 했고 이번에는 repository를 만들어서 사용해 보겠다. 1. QuerydslConfig라는 클래스를 만들고 JPAQueryFactory Bean설정을 해준다. import com.querydsl.jpa.impl.JPAQueryFactory; import jakart

curiousjinan.tistory.com

 

반응형