• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

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

23.06.05 16:21 작성 23.06.05 16:25 수정 조회수 1.06k

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

OMG님의 프로필

OMG

2023.06.05

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

2

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