[Spring] 스프링 DB 2편 - 데이터 접근 활용 기술 섹션6 데이터 접근 기술 - Querydsl
⬜ 섹션6 데이터 접근 기술 - Querydsl
💡 강의 플로우 요약
기존방식문제점: JPA에서 JPQL로 쿼리작성,하지만 type-safe하지않음! type-safe하게 만들면 이용법 개복잡해짐...
해결책: QueryDsl 등장! type-safe,컴파일에러,이용쉬움! JPQL로 변환되어 SQL 쿼리 생성!
◼️ 기존방식 문제점
query는 문자이므로, type-check 불가능하다. 즉, 실행하기 전까지 작동여부 확인 불가.
🧐만약 SQL이 클래스처럼 타입이 있고, 자바 코드로 작성할 수 있다면 type-safe!
* JPA에서 Query 방법
- JPQL(HQL)
- 장점: SQL QUERY와 비슷
- 단점: type-safe X, 동적 쿼리 생성 어려움
- Criteria API
- 장점: 동적쿼리 생성 가능(
쉬움??) - 단점: 개복잡
- 장점: 동적쿼리 생성 가능(
- MetaModel Criteria API(type-safe)
- 개복잡
◼️ QueryDSL
🟢QueryDSL( Domain-Specific-Language )
- JPA, MongoDB, SQL 같은 기술들을 위해 type-safe SQL을 만드는 프레임워크
- 컴파일 에러 !!!
- 주로 JPA쿼리(JPQL)에 사용
- 쿼리에 특화된 프로그래밍 언어
- 다양한 저장소 쿼리 기능 통합
🟢QueryDSL-JPA
- JPA 쿼리(JPQL)을 typesafe 하게 작성하는데 많이 사용
- 장점: type-safe, 단순함, 쉬움
- 단점: Q코드 생성을 위한 APT를 설정해야함
🟢SpringDataJPA + QueryDsl
- SpringData프로젝트 약점은 조회
- Querydsl로 복잡한 조회 기능 보완: 복잡한 쿼리, 동적 쿼리
- 단순한 경우 SpringDataJPA, 복잡한 경우 Querydsl 직접 사용
'Spring' 카테고리의 다른 글
[Spring] 스프링 DB 2편 - 데이터 접근 핵심 원리 섹션9 스프링 트랜잭션 이해 (0) | 2024.07.08 |
---|---|
[Spring] 스프링 DB 2편 - 데이터 접근 핵심 원리 섹션8 데이터 접근 기술 - 활용 방안 (0) | 2024.07.07 |
[Spring] 스프링 DB 1편 - 데이터 접근 핵심 원리 섹션5,6 예외 & 스프링과 문제 해결 - 예외 처리, 반복 (0) | 2024.06.11 |
[Spring] 스프링 DB 1편 - 데이터 접근 핵심 원리 섹션4 스프링과 문제 해결 - 트랜잭션 (0) | 2024.06.05 |
[Spring] 스프링 DB 1편 - 데이터 접근 핵심 원리 섹션3 트랜잭션 이해 (0) | 2024.06.02 |