인프런 커뮤니티 질문&답변

ginny2407님의 프로필 이미지
ginny2407

작성한 질문수

실전! Querydsl

Querydsl 설정과 검증

내가 쓴 SpringBoot 2.7 에서의 queryDsl 설정 방법.

작성

·

1.3K

·

수정됨

8

다른 블로그 참고하여 강의에 맞게 설정을 조금 수정하였습니다.

새롭게 강의 듣는 분들의 시간을 아낄 수 있을까 싶어 공유드립니다.

장점

  • QEntity 생성 경로가 강의와 같습니다.

  • src/main 하위가 아닌 generated 하위에만 QEntity 가 생성 되어 git ignore설정을 따로 해주지 않아도 됩니다.

저도 이 강의의 이 회차를 듣고 알아본 것이기 때문에 QEntity 가 잘 생성되어 Run이 잘되는 것만 확인했지 다른 것까지 모두 테스트 해보진 못했습니다.

compileQueryDsl 동작 없이 Application Run 하시면 되겠습니다.

아래 설정의 잘못된점이 있다면 댓글 달아주시면 모두에게 도움이 될 것 같습니다.

내 블로그 : https://elastinn.tistory.com/11

블로그 광고해도 되나 모르겠습니다.

감사합니다.

plugins {
	id 'java'
	id 'org.springframework.boot' version '2.7.12'
	id 'io.spring.dependency-management' version '1.0.15.RELEASE'

}

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

configurations {
	compileOnly {
		extendsFrom annotationProcessor
	}
}

repositories {
	mavenCentral()
}

dependencies {
	implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
	implementation 'org.springframework.boot:spring-boot-starter-web'
	compileOnly 'org.projectlombok:lombok'

	// queryDSL 설정
	implementation "com.querydsl:querydsl-jpa"
	implementation "com.querydsl:querydsl-core"
	implementation "com.querydsl:querydsl-collections"
	annotationProcessor "com.querydsl:querydsl-apt:${dependencyManagement.importedProperties['querydsl.version']}:jpa" // querydsl JPAAnnotationProcessor 사용 지정
	annotationProcessor "jakarta.annotation:jakarta.annotation-api" // java.lang.NoClassDefFoundError (javax.annotation.Generated) 대응 코드
	annotationProcessor "jakarta.persistence:jakarta.persistence-api" // java.lang.NoClassDefFoundError (javax.annotation.Entity) 대응 코드

	runtimeOnly 'com.h2database:h2'
	annotationProcessor 'org.projectlombok:lombok'
	testImplementation 'org.springframework.boot:spring-boot-starter-test'
}

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

//querydsl 추가 시작
def querydslDir = "$buildDir/generated/querydsl"

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

// gradle clean 시에 QClass 디렉토리 삭제
clean {
	delete file(querydslDir)
}
//querydsl 추가 끝

답변 2

3

안녕하세요. ginny2407님, 공식 서포터즈 OMG입니다.
정보 공유 감사합니다 :)

2

김영한님의 프로필 이미지
김영한
지식공유자

ginny2407님 좋은 자료 공유 감사합니다^^

ginny2407님의 프로필 이미지
ginny2407

작성한 질문수

질문하기