Querydsl
- SQL, JPQL을 코드로 작성할 수 있도록 도와주는 빌더 API
- 오픈소스
- 장점
- 문자가 아닌 코드로 작성
- 컴파일 시점에 문법 오류를 발견
- 코드 자동완성(IDE 도움)
- 동적 쿼리
사용법
1. pom.xml에 dependency 추가
<!-- Querydsl -->
<dependency>
<groupId>com.querydsl</groupId>
<artifactId>querydsl-jpa</artifactId>
</dependency>
<dependency>
<groupId>com.querydsl</groupId>
<artifactId>querydsl-apt</artifactId>
<scope>provided</scope>
</dependency>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<excludes>
<exclude>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</exclude>
</excludes>
</configuration>
</plugin>
<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>
2. maven lifecycle을 이용해 "clean → compile" 하면 target 폴더 안에 Query Type 생성됨
3. repository/custom 안에 CustomRepository 생성 (Custom____Repository)
4. repository/support 안에 custom을 구현하는 Impl.java 파일 생성 (____RepositoryImpl.java)
5. 기존의 Repository에 CustomRepository를 extends에 추가 (____Repository)
❗ 복잡한 쿼리문은 querydsl을 통해서 코드 작성하는 게 보기에도 구현하기에도 편할 것 같다. ❗
❗ querydsl관련 : https://querydsl.com/ ❗
'Web > Spring' 카테고리의 다른 글
[ERROR] Querydsl import (0) | 2021.08.02 |
---|---|
[Util] ControllerNameInterceptor (0) | 2021.07.30 |
[배경] JPA (0) | 2021.07.27 |
[배경] Maven (0) | 2021.07.27 |
[배경] Template Engine (0) | 2021.07.27 |