일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
Tags
- springboot
- java
- immutable
- git
- workflow
- template
- Github
- 알고리즘
- CodeDeploy
- aws
- build_test
- JUnit
- EC2
- 토비의 스프링
- mutable
- redis
- kotlin
- Airflow
- string
- JPA
- compiler
- 사이드 프로젝트
- rds
- AOP
- QueryDSL
- Spring
- db
- Action
Archives
- Today
- Total
개발 일기
SpringBoot 2.5.x , Java11 버전 이상에서 QueryDSL 설정하기 본문
자바 8 과 기본적인 설정은 아래의 게시글을 확인해주세요
https://dev-jo.tistory.com/38?category=947368
SpringBoot 2.5.X 버전 이상에서 QueryDsl 설정하기
이번 포스팅은 간단하게 querydsl 의 돌아가는 내부 설명 없이 설정법만 기록하겠습니다. 스프링부트 gradle querydsl 버전 2.5.2 7.1.1 4.3.1 plugins { id 'org.springframework.boot' version '2.5.2' id 'io.s..
dev-jo.tistory.com
이번에 사이드 프로젝트 서버 자바 버전을 8 -> 11로 버전업 하면서
QClass 가 생성되지 않는 이슈가 생겼습니다.
해결법만 올리겠습니다.
기본적인 설정은 위의 링크를 참고 한 후
아래의 소스를 변경해주시면 됩니다.
QueryDSL 이라고 적혀있는 부분만 확인하시면 됩니다.
전체 소스
plugins {
id 'org.springframework.boot' version '2.5.4'
id 'io.spring.dependency-management' version '1.0.11.RELEASE'
id 'java'
id 'java-library' // QueryDSL must have
}
group = 'com.dj.server'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '11'
def querydslVersion = '4.3.1'
configurations {
compileOnly {
extendsFrom annotationProcessor
}
}
repositories {
mavenCentral()
}
dependencies {
//web or spring-starter
implementation 'org.springframework.boot:spring-boot-starter-web:2.5.4'
implementation 'org.springframework.boot:spring-boot-starter-mail:2.5.4'
implementation 'org.springframework.boot:spring-boot-starter-aop:2.5.4'
developmentOnly 'org.springframework.boot:spring-boot-devtools:2.5.4'
//security
implementation 'org.springframework.boot:spring-boot-starter-security:2.5.4'
implementation 'org.springframework.boot:spring-boot-starter-oauth2-client:2.5.4'
//db
implementation 'org.springframework.boot:spring-boot-starter-data-jpa:2.5.4'
implementation 'org.springframework.boot:spring-boot-starter-validation:2.5.4'
runtimeOnly 'org.mariadb.jdbc:mariadb-java-client:2.7.3'
//redis
implementation 'org.springframework.boot:spring-boot-starter-data-redis:2.5.4'
//querydsl
implementation group: 'com.querydsl', name: 'querydsl-jpa', version: querydslVersion
annotationProcessor group: 'com.querydsl', name: 'querydsl-apt', version: querydslVersion
annotationProcessor group: 'com.querydsl', name: 'querydsl-apt', version: querydslVersion, classifier: 'jpa'
annotationProcessor 'javax.persistence:javax.persistence-api:2.2'
annotationProcessor 'javax.annotation:javax.annotation-api:1.3.2'
//websocket
implementation 'org.springframework.boot:spring-boot-starter-websocket:2.5.4'
implementation 'org.webjars:sockjs-client:1.5.1'
implementation 'org.webjars:stomp-websocket:2.3.4'
implementation 'org.webjars:webjars-locator-core'
implementation 'org.webjars:stomp-websocket:2.3.3'
implementation 'org.webjars:bootstrap:3.3.7'
implementation 'org.webjars:jquery:3.1.1-1'
//swagger
implementation 'io.springfox:springfox-swagger2:2.9.2'
implementation 'io.springfox:springfox-swagger-ui:2.9.2'
//lombok
compileOnly 'org.projectlombok:lombok:1.18.20'
annotationProcessor 'org.projectlombok:lombok:1.18.20'
// auth0 JWT
implementation 'com.auth0:java-jwt:3.18.1'
//GSON
implementation 'com.google.code.gson:gson:2.8.7'
implementation 'com.h2database:h2:1.4.200'
//test
testImplementation 'org.springframework.boot:spring-boot-starter-test:2.5.3'
testImplementation 'org.springframework.security:spring-security-test:5.5.1'
testImplementation 'com.h2database:h2:1.4.200'
}
// jar plain 파일 생성안되게
// 참고 https://docs.spring.io/spring-boot/docs/current/gradle-plugin/reference/htmlsingle/#packaging-executable.and-plain-archives
jar {
enabled = false
}
test {
useJUnitPlatform()
}
변경 사항
변경 전
annotationProcessor 'jakarta.persistence:jakarta.persistence-api'
annotationProcessor 'jakarta.annotation:jakarta.annotation-api'
변경 후
annotationProcessor 'javax.persistence:javax.persistence-api:2.2'
annotationProcessor 'javax.annotation:javax.annotation-api:1.3.2'
해당 라이브러리를 변경해 줍시다.
변경 후 부터는 QClass 대신
아래와 같이 QuerydslRepositorySupport 를 상속 받아 사용하면 됩니다.
public class MemberQueryDSLRepositoryImpl extends QuerydslRepositorySupport implements MemberQueryDSLRepository {
public MemberQueryDSLRepositoryImpl() {
super(Member.class);
}
@Override
public Member findByMemberNickName(String nickName) {
final QMember member = QMember.member;
return from(member)
.where(member.memberNickName.eq(nickName))
.fetchOne();
}
}
'Spring' 카테고리의 다른 글
토비의 스프링 1장 - 오브젝트와 의존관계 (0) | 2021.10.20 |
---|---|
토비의 스프링 스터디 시작. (0) | 2021.10.20 |
[JUnit] JUnit , AssertJ , MockMVC 메소드 (0) | 2021.08.16 |
SpringBoot convert snake to camel, camel to snake (0) | 2021.08.06 |
SpringBoot 2.5.X 버전 이상에서 QueryDsl 설정하기 (0) | 2021.08.05 |