본문 바로가기
Back/DB

[DB] QueryDSL

by 오엥?은 2023. 5. 12.
반응형

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편 - 데이터 접근 활용 기술 (김영한)

반응형

'Back > DB' 카테고리의 다른 글

[DB] PostgreSQL 과 MariaDB 의 특징, 차이점  (5) 2023.07.18
[DB] 스프링 트랜잭션  (0) 2023.05.18
[DB] JPA  (0) 2023.05.12
[DB] MyBatis  (0) 2023.05.09
[DB] JdbcTemplate  (0) 2023.05.08