You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
annotationProcessor : entity annotation을 읽어서 QItem이라는 Querydsl을 처리하기 위한 클래스를 만들어주기 위한 처리기
//Querydsl 추가, 자동 생성된 Q클래스 gradle clean으로 제거clean {
deletefile('src/main/generated')
}
플러그인, Intellij, querydsl version에 따라 설정이 달라질 수 있음 > 검색을 참고
설정이 환경에 따라 다름
Option1 ) Gradle - Q타입 생성 확인 방법
Gradle → Tasks → build → Clean : 과거의 gradle 초기화
Gradle → Tasks → other → compileJava 실행
Gradle로 설정시 build 폴더 생김 → generated → sources → annotationProcessor → Java → main → QItem 파일 생김
패키지 hello.itemservice.domain
hello.itemservice.domain.QItem이 생성되어 있어야 한다.
Gradle 콘솔 사용법 ./gradlew clean compileJava
Q타입은 컴파일 시점에 자동 생성되므로 버전관리에 포함하지 않는것이 좋다
gradle 옵션을 선택하면 Q타입은 gradle build 폴더 아래에 생성되기 때문에 여기를 포함하지 않아야 한다.
대부분 gradle build 폴더에 git에 포함하지 않기 때문에 이 부분은 자연스럽게 해결된다.
삭제방법
gradle → clean 실행하면 삭제됨
Option 2) Intellij - Q타입 생성 확인 방법
main() Run → generated → Q타입 확인
build → BuildProject 또는 Rebuild(캐시 최적화때문에 안될경우) → QItem 파일 생성 확인
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
소개 1: 기존 방식의 문제점
Query 는 문자
인지를 잘 할 수 있는
컴파일 에러 : 좋은 에러
런타임 에러 : 나쁜 에러(고객이 직접 실행할 때 나는 에러)
SQL 컬럼명을 모두 외울 수 있을까?
SQL이 클래스처럼 타입이 있고 자바 코드로 작성할 수 있다면? type-safe 하다면?
QueryDSL
JPA Query : Java ORM
Querydsl 소개2 : 해결
DSL 도메인 특화 언어
: 특정 도메인에 초점을 맞춘 제한적인 표현력을 가진 컴퓨터 프로그래밍 언어
특징 : 단순, 간결, 유창
QueryDSL : 쿼리 + 도메인 + 특화 + 언어
쿼리 + 도메인 + 특화 + 언어
쿼리에 특화된 프로그래밍 언어
단순, 간결 , 유창
다양한 저장소 쿼리 기능 통합
작동 방식은 QUERY DSL → JPQL → SQL
생성순으로 간다.
querydsl - JPA
장점
단점
SpringDataJPA + Querydsl
QueryDSL 설정(Spring boot 3.x)
build.gradleannotationProcessor : entity annotation을 읽어서 QItem이라는 Querydsl을 처리하기 위한 클래스를 만들어주기 위한 처리기
설정이 환경에 따라 다름
Option1 ) Gradle - Q타입 생성 확인 방법
Gradle 콘솔 사용법
./gradlew clean compileJava삭제방법
gradle → clean 실행하면 삭제됨
Option 2) Intellij - Q타입 생성 확인 방법
main() Run → generated → Q타입 확인
build → BuildProject 또는 Rebuild(캐시 최적화때문에 안될경우) → QItem 파일 생성 확인
삭제방법
수동 삭제
적용
loe : Less or Equal 즉 작거나 같다를 뜻하고
크거나 같다는 goe를 사용해주면 된다.
또 eq, between 등 다양한 조건을 거는 것이 가능하며 굉장히 직관적이다.
정리
Querydsl 장점
동적 쿼리 깔끔하게 사용할 수 있다.
likeItemName(itemName), maxPrice(maxPrice)메서드를 다른 쿼리에서도 함께 사용할 수 있다.All reactions