티스토리 뷰
Case 1
Spring Boot 3.0.0
Kotlin
Gradle 7.6 (kotlin)
spring 3.0.0 부터 javax에서 jakarta를 사용하면서 기존 코드들을 그대로 사용하면 호환성 문제가 있음.
그렇다고 많은부분이 바뀌는건 아니고 build.gradle 의존성만 조금 바꿔주면 된다.
plugins {
...
kotlin("kapt")
}
dependencies {
...
annotationProcessor("jakarta.persistence:jakarta.persistence-api")
annotationProcessor("jakarta.annotation:jakarta.annotation-api")
// https://mvnrepository.com/artifact/com.querydsl/querydsl-jpa
implementation("com.querydsl:querydsl-jpa:5.0.0:jakarta")
kapt("com.querydsl:querydsl-apt:5.0.0:jakarta")
}
QClass 생성
QClass 저장 위치
build/generated/source/kapt/main
reference
https://shanepark.tistory.com/421
https://gaemi606.tistory.com/entry/Spring-Boot-Querydsl-%EC%B6%94%EA%B0%80-Gradle-7x
Case 2
spring 2.x.x
kotlin
gradle
plugins {
kotlin("plugin.jpa") version "1.2.71"
...
}
allOpen {
annotation("javax.persistence.Entity")
annotation("javax.persistence.MappedSuperclass")
}
// 전역변수 (queryDSL 버전)
val querydslVersion = "4.4.0"
dependencies {
implementation("org.springframework.boot:spring-boot-starter-data-jpa")
runtimeOnly("mysql:mysql-connector-java")
//query-dsl 의존성
implementation("com.querydsl:querydsl-jpa:$querydslVersion")
kapt("com.querydsl:querydsl-apt:$querydslVersion:jpa")
...
}
Case 3
Java
Gradle
plugin {
//querydsl 추가
id "com.ewerk.gradle.plugins.querydsl" version "1.0.10"
...
}
dependencies {
//query-dsl
implementation 'com.querydsl:querydsl-jpa'
...
}
//querydsl 추가 시작
def querydslDir = "$buildDir/generated/querydsl"
querydsl {
jpa = true
querydslSourcesDir = querydslDir
}
sourceSets {
main.java.srcDir querydslDir
}
configurations {
querydsl.extendsFrom compileClasspath
}
compileQuerydsl {
options.annotationProcessorPath = configurations.querydsl
}
//querydsl 추가 끝
QClass 생성하기
kaptKotlin 실행
----------------------------------- 가급적이면 intellij + gradle 을 사용합니다 -----------------------------
Case 4
Maven
eclipse
java
<!-- production database에 접근하기위한 의존성 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<!-- jpa 사용하기 위한 의존성 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<!-- queryDSL apt -->
<dependency>
<groupId>com.querydsl</groupId>
<artifactId>querydsl-apt</artifactId>
<version>4.2.1</version>
</dependency>
<!-- queryDSL jpa -->
<dependency>
<groupId>com.querydsl</groupId>
<artifactId>querydsl-jpa</artifactId>
<version>4.2.1</version>
</dependency>
plugin 추가(pom.xml)
<project>
<build>
<plugins>
...
<plugin>
<groupId>com.mysema.maven</groupId>
<artifactId>apt-maven-plugin</artifactId>
<version>1.1.3</version>
<executions>
<execution>
<goals>
<goal>process</goal>
</goals>
<configuration>
<outputDirectory>target/generated-sources/java</outputDirectory>
<processor>com.querydsl.apt.jpa.JPAAnnotationProcessor</processor>
</configuration>
</execution>
</executions>
</plugin>
...
</plugins>
</build>
</project>
QClass생성하기
QClass 경로를 못잡을경우
'스프링' 카테고리의 다른 글
Spring Boot 메일 발송 (0) | 2023.02.04 |
---|---|
스프링부트(spring boot) javascript 의존성 관리 (0) | 2021.02.19 |
JMeter 웹서버 부하테스트 (0) | 2021.02.05 |
타임리프(thymeleaf) 사용하기 (0) | 2020.12.31 |
@Valid 를 이용한 검증 및 Advice를 이용한 에러처리 (0) | 2020.06.10 |
댓글