개발/JPA
[Querydsl] 스프링 부트에 Querydsl 설정하기
build.Gradle에 Querydsl 설정 추가
플러그인 추가
plugins {
...
id "com.ewerk.gradle.plugins.querydsl" version "1.0.10"
...
}
의존성 추가
dependencies {
...
implementation 'com.querydsl:querydsl-jpa'
...
}
그 외 설정
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 설정 확인
Q타입 생성 확인
Hello 클래스 생성
@Entity
@Getter
@Setter
public class Hello {
@Id
@GeneratedValue
private Long id;
}
Querydsl 컴파일
1. Gradle -> Tasks -> build -> clean
2. Gradle -> Tasks -> other -> complieQuerydsl
또는
콘솔에 다음 명령어 실행
./gradlew clean complieQuerydsl
Q타입 생성 완료
build -> generated -> querydsl -> 프로젝트 경로(build.gradle에 설정한 경로)에 QHello 클래스 파일이 생성되었으면 완료
Querydsl 동작 확인
간단한 테스트 작성
@Test
void contextLoads() {
Hello hello = new Hello();
em.persist(hello);
JPAQueryFactory queryFactory = new JPAQueryFactory(em);
/*
QHello 생성자 안의 'h'는 같은 테이블을 조인할 경우 구분을 위함이다.
현재 테스트에서는 큰 의미는 없다.
*/
QHello qHello = new QHello("h");
Hello result = query.selectFrom(qHello).fetchOne();
assertThat(result).isEqualTo(hello);
assertThat(result.getId()).isEqualTo(hello.getId());
}
테스트 성공
참고
김영한님의 실전! Querydsl
김영한님의 자바 ORM 표준 JPA 프로그래밍
'개발 > JPA' 카테고리의 다른 글
[JPA] 영속성 관리 (0) | 2021.12.08 |
---|---|
[JPA] JPA 소개 (0) | 2021.12.08 |
[Querydsl] 검색 쿼리를 Querydsl로 구현하기(3) (0) | 2021.07.16 |
[Querydsl] 검색 쿼리를 Querydsl로 구현하기(2) (0) | 2021.07.14 |
[Querydsl] 검색 쿼리를 Querydsl로 구현하기(1) (0) | 2021.07.14 |
댓글