[Inflearn] 실전! Querydsl - 김영한 https://www.inflearn.com/course/Querydsl-%EC%8B%A4%EC%A0%84/dashboard
실전! Querydsl - 인프런 | 강의
Querydsl의 기초부터 실무 활용까지 한번에 해결, 본 강의는 자바 백엔드 개발의 실전 코스를 완성하는 마지막 강의 입니다. 스프링 부트와 JPA 실무 완전 정복 로드맵을 우선 확인해주세요. 로드
www.inflearn.com
[GIT] https://github.com/ijo0r98/querydsl
GitHub - ijo0r98/querydsl: [Inflearn] 실전! Querydsl - 김영한
[Inflearn] 실전! Querydsl - 김영한. Contribute to ijo0r98/querydsl development by creating an account on GitHub.
github.com
정적 타입을 이용해서 SQL과 같은 쿼리를 생성할 수 있도록 해 주는 프레임워크으로 엔티티에 대한 Qclass를 생성하여 사용한다.
/**
* QMember is a Querydsl query type for Member
*/
@Generated("com.querydsl.codegen.EntitySerializer")
public class QMember extends EntityPathBase<Member> {
private static final long serialVersionUID = -769675599L;
private static final PathInits INITS = PathInits.DIRECT2;
public static final QMember member = new QMember("member1");
public final NumberPath<Integer> age = createNumber("age", Integer.class);
public final NumberPath<Long> id = createNumber("id", Long.class);
public final QTeam team;
public final StringPath username = createString("username");
...
}
[Querydsl 레퍼런스] www.querydsl.com/static/querydsl/4.0.1/reference/ko-KR/html_single/
Querydsl - 레퍼런스 문서
본 절에서는 SQL 모듈의 쿼라 타입 생성과 쿼리 기능을 설명한다. com.querydsl.sql.Configuration 클래스를 이용해서 설정하며, Configuration 클래스는 생성자 인자로 Querydsl SQL Dialect를 취한다. 예를 들어, H2
www.querydsl.com
Querydsl을 사용함으로써 JPA로 해결하지 못하는 복잡한 쿼리나 동적 쿼리 생성이 가능하다. 자바 코드로 쿼리를 작성하기 때문에 컴파일 시점에서 뛰어쓰기, 오타 등의 오류를 발견할 수 있을 뿐 아니라 자동 완성 기능의 도움을 받을 수 있다. 또한 단순 반복 작업을 줄여줘 핵심 비지니스 로직 개발에 더욱 집중할 수 있으며 메서드로 이용하여 코드 재사용성을 높인다.
build.gradle(*build.gradle 수정 후 Gradle 새로고침은 필수)
plugins {
// queryDSL plugin 추가
id "com.ewerk.gradle.plugins.querydsl" version "1.0.10"
}
dependencies {
//querydsl library 추가
implementation 'com.querydsl:querydsl-jpa'
}
// querydsl builder
def querydslDir = "$buildDir/generated/querydsl"
querydsl {
jpa = true
querydslSourcesDir = querydslDir
}
sourceSets {
main.java.srcDir querydslDir
}
configurations {
querydsl.extendsFrom compileClasspath
}
compileQuerydsl {
options.annotationProcessorPath = configurations.querydsl
}
$buildDir/generated/querydsl : Q타입이 생성될 경로 지정
※ 새로 엔티티를 생성하여 그에 대한 Q타입을 생성해야할 때
- intellij
초기화 : Gradle > Tasks > build > clean
Q타입 컴파일 : Gradle > Tasks > other > Gradle Tasks other compileQuerydsl
- 콘솔
./gradlew clean compileQuerydsl
위의 경로(build/generated/querydsl/..)에 새로운 엔티티에 대한 Q타입이 생겼는지 확인
Q타입은 컴파일 시점에 자동 생성되므로 버전관리(GIT)에 포함하지 않는 것이 좋은데 앞서 설정에서 생성 위치를 build 폴더 아래 생성되도록 했기 때문에 이 부분도 자연스럽게 해결된다(대부분 gradle build 폴더를 git에 포함하지 않는다).
[SPRING] Querydsl | 문법(2) 조인연산 (0) | 2021.04.30 |
---|---|
[SPRING] Querydsl | 기본 문법(1) (0) | 2021.04.30 |
[SPRING] JPA 활용2 | OSIV와 성능 최적화 (0) | 2021.04.21 |
[SPRING] JPA 활용2 | API 개발과 성능 최적화(2) (0) | 2021.04.21 |
[SPRING] JPA 활용2 | API 개발과 성능 최적화(1) (0) | 2021.04.20 |
댓글 영역