Java

[QueryDSL] QueryDSL 스프링부트 3.0 이상 버전 환경 설정

k_sangmin 2023. 12. 15. 14:27

1. 프로젝트 생성

 

해당폴더 실행시 자바 버전을 맞춰 주어야 한다.

 

2. 빌드 설정

인텔리 제이는 자바에서 실행 하는게 아니라 gradle에게 실행을 위임하기 때문에 빌드가 드림

따라서 빌드 및 실행을 인텔리제이 로 바꾸면 빌드 및 실행속도가 빨라짐

 

3. 롬복 셋팅

만약 처음 세팅이라면 롬복을 플러그인에서 다운 받아야함

 

어노테이션 처리 활성화

설정 -> 빌드 실행 배포 -> 컴파일러 -> 어노테이션 프로세서 -> 어노테이션 처리 활성화

를 해주어야 롬복이 정상 작동됨 이후 재시작을 하면 완료

 

4.build.gradle

스프링부트 3.0 이상 버전

plugins {
	id 'java'
	id 'org.springframework.boot' version '3.2.0'
	id 'io.spring.dependency-management' version '1.1.4'
}


group = 'study'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '17'


configurations {
	compileOnly {
		extendsFrom annotationProcessor
	}
}


repositories {
	mavenCentral()
}


dependencies {
	implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
	implementation 'org.springframework.boot:spring-boot-starter-web'
	implementation 'com.github.gavlyukovskiy:p6spy-spring-boot-starter:1.9.0'
	compileOnly 'org.projectlombok:lombok'
	runtimeOnly 'com.h2database:h2'
	annotationProcessor 'org.projectlombok:lombok'
	testImplementation 'org.springframework.boot:spring-boot-starter-test'

	//JdbcTemplate 추가
	//implementation 'org.springframework.boot:spring-boot-starter-jdbc'
	//MyBatis 추가
	implementation 'org.mybatis.spring.boot:mybatis-spring-boot-starter:2.2.0'
	//JPA, 스프링 데이터 JPA 추가
	implementation 'org.springframework.boot:spring-boot-starter-data-jpa'


	//test 롬복 사용
	testCompileOnly 'org.projectlombok:lombok'
	testAnnotationProcessor 'org.projectlombok:lombok'

	//H2 데이터베이스 추가
	runtimeOnly 'com.h2database:h2'
	compileOnly 'org.projectlombok:lombok'
	annotationProcessor 'org.projectlombok:lombok'
	testImplementation 'org.springframework.boot:spring-boot-starter-test'

	//Querydsl 추가
	implementation 'com.querydsl:querydsl-jpa:5.0.0:jakarta'
	annotationProcessor "com.querydsl:querydsl-apt:${dependencyManagement.importedProperties['querydsl.version']}:jakarta"
	annotationProcessor "jakarta.annotation:jakarta.annotation-api"
	annotationProcessor "jakarta.persistence:jakarta.persistence-api"
}


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


clean {
	delete file('src/main/generated')
}

 

 

build.gradle을 설정하고 실행시 querydsl을 사용하기 위해 entity를 참조한 해당 엔티티가 생성됨

해당 폴더는 깃에 올라가지 않게 설정 해야함

 

querydsl은 해당 entity를 사용해서 쿼리문을 사용