[Spring]Spring DATA JPA Querydsl

yoon·2024년 3월 22일

spring-boot

목록 보기
22/41
post-thumbnail

✅ Querydsl

@Query 어노테이션의 단점은 컴파일 시점에 에러를 발견할 수 없다는 것이다. 또한 spring boot를 사용할 때 주로 spring data JPA를 함께 사용하는데 복잡한 쿼리, 동적 쿼리를 구현하는 데는 한계가 있다.

이를 보완하기 위한 방법으로 Querydsl이 있다.

Querydsl은 JPQL을 코드로 작성할 수 있도록 도와주는 빌더 API이다.

✔️ 장점

  • 동적으로 쿼리 생성 가능
  • 쿼리 재사용성, 가독성 향상 가능
  • 문자열이 아닌 자바 소스코드로 작성하기 때문에 컴파일 시점에 오류 반환
  • IDE의 도움으로 자동 완성 기능 사용 가능

✔️ 설정방법

implementation 'com.querydsl:querydsl-jpa:5.0.0:jakarta'
annotationProcessor "com.querydsl:querydsl-apt:5.0.0:jakarta"
annotationProcessor "jakarta.annotation:jakarta.annotation-api"
annotationProcessor "jakarta.persistence:jakarta.persistence-api"

✔️ 사용방법

1. 우선 Qclass를 만들어야한다.

2. 적용

private JPAQueryFactory queryFactory;
public ItemRepositoryCustomImpl(EntityManager em){
      this.queryFactory = new JPAQueryFactory(em);
    }
private BooleanExpression searchSellStatusEq(ItemSellStatusEnum searchSellStatus){
        return searchSellStatus == null ? null
         : QItem.item.itemSellStatus.eq(searchSellStatus);
    }

🔺 Qclass import 가 안된다면?
file>project structure> Qclass 폴더 클릭 후 source 클릭

profile
하루하루 차근차근🌱

0개의 댓글