실전! Querydsl

Ch06. 스프링 데이터 JPA가 제공하는 Querydsl 기능 - 인터페이스 지원(QuerydslPredicateExecutor)

webmaster 2022. 1. 2. 12:24
728x90

여기서 소개하는 기능은 제약이 커서 복잡한 실무 환경에서 사용하기에는 많이 부족하다. 그래도 스프링 데이터에서 제공하는 기능이므로 간단히 소개하고, 왜 부족한지 설명하겠다

인터페이스 지원 - QuerydslPredicateExecutor

공식 URL: https://docs.spring.io/spring-data/jpa/docs/2.2.3.RELEASE/reference/html/#core.extensions.querydsl 

 

Spring Data JPA - Reference Documentation

Example 108. Using @Transactional at query methods @Transactional(readOnly = true) public interface UserRepository extends JpaRepository { List findByLastname(String lastname); @Modifying @Transactional @Query("delete from User u where u.active = false") v

docs.spring.io

해당 Interface 추가
Test

  • 메서드에 매개변수로 Predicate가 들어갈 수 있다.(findAll, findById에 매개변수로 where 조건이 들어갈 수 있음) 
  •  한계점
    • 조인X (묵시적 조인은 가능하지만 left join이 불가능하다.)
    • 클라이언트가 Querydsl에 의존해야 한다. 서비스 클래스가 Querydsl이라는 구현 기술에 의존해야 한다.
    • 복잡한 실무 환경에서 사용하기에는 한계가 명확하다

참고: QuerydslPredicateExecutor 는 Pagable, Sort를 모두 지원하고 정상 동작한다.

728x90