Back/DB
[DB] QueryDSL
엥?은
2023. 5. 12. 15:47
반응형
✔ QueryDSL
• 쿼리를 Java로 type-safe 하게 개발할 수 있게 지원하는 프레임워크
• 주로 JPA 쿼리(JPQL)에 사용한다.
➕ JPQL(HQL)
- 장점 : SQL QUERY 와 비슷해서 금방 익숙해진다.
- 단점 : type-safe 가 아니며, 동적쿼리 생성이 어렵다.
• 쿼리에 특화된 프로그래밍 언어 (쿼리 + 도메인 + 특화 + 언어)
• 단순, 간결하고 유창하다.
✔ SpringDataJPA + Querydsl
• SpringData 프로젝트의 약점은 조회이다. -> Querydsl 로 복잡한 조회 기능을 보완한다.
✔ QueryDSL 장점
: Querydsl 덕분에 동적 쿼리를 매우 깔끔하게 사용할 수 있다.
List<Item> result = query
.select(item)
.from(item)
.where(likeItemName(itemName), maxPrice(maxPrice))
.fetch();
- 쿼리 문장에 오타가 있어도 컴파일 시점에 오류를 막을 수 있다.
- 메서드 추출을 통해서 코드를 재사용할 수 있다.
(예를 들어서 위의 코드에서 만든 likeItemName(itemName)과 maxPrice(maxPrice) 메서드를 다른 쿼리에서도 함께 사용할 수 있다.)
인프런 ) 스프링DB 2편 - 데이터 접근 활용 기술 (김영한)
반응형