관리 메뉴

제뉴어리의 모든것

[JPA] Spring Data JPA와 QueryDSL (1) 본문

querydsl

[JPA] Spring Data JPA와 QueryDSL (1)

제뉴어리맨 2021. 3. 18. 03:01

스프링 데이터 JPA는 2가지 방법으로 QueryDSL을 지원한다.

 

1. org.springframework.data.querydsl.QueryDslPredicateExecutor

2. org.springframework.data.querydsl.QueryDslRepositorySupport

1번의 경우 대략 아래와 같이 사용이 가능하다.

 

public interface ItemRepository extends JpaRepository<Item, Long>, QueryDslPredicateExecutor<Item> { }
QItem item = QItem.item;
Iterable<Item> result = itemRepository.findAll(
    item.name.contains("장난감").and(item.price.between(10000, 20000))
);
public interface QueryDslPredicateExecutor<T> {
    ... 생략
    Iterable<T> findAll(Predicate predicate);
    ... 생략
}

 

일반적인 CRUD는 QueryDslPredicateExecutor로 커버가 가능하다. Like문, and 조건, or 조건 등 여러가지 condition을 조합하여 query를 생성할수 있다.

하지만, join (inner join, outer join 등)이나 fetch를 사용할 수 없는 한계가 있다. 이러한 한계를 극복하기 위해서는 JPAQuery를 직접 사용하거나 스프링 데이터 JPA가 제공하는 QueryDslRepositorySupport 인터페이스를 사용해야 한다.

 

 

출처 : [JPA] Spring Data JPA와 Qu.. : 네이버블로그 (naver.com)

'querydsl' 카테고리의 다른 글

querydsl이 왜 필요한가 외의 유용한 설명들  (0) 2021.03.18
querydsl Gradle 설정  (0) 2021.03.18
[JPA] Spring Data JPA와 QueryDSL (2)  (0) 2021.03.18