QueryDsl 사용법

867 단어 JPAJPA

🖊 QueryDsl 이란?

JPA로 동적 쿼리를 작성하는데 유지보수에 큰 문제가 있어서 이를 해결하기 위해 만들어진 오픈소스 프로젝트

🖊 QueryDsl 예시

dependencies {
    implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
    implementation 'com.querydsl:querydsl-jpa:5.0.0'
    annotationProcessor 'com.querydsl:querydsl-apt:5.0.0:general'
}

// 원하는 엔티티에 @QueryEntity를 달아주고 컴파일
// 사용하는 리포지토리에 JPAQueryFactory 객체를 만들어준다.
// Q엔티티를 만들면 다음과 같이 사용할 수 있다.

query.select(order)
	 .from(order)
     .join(order.member, member)
     .where(statusEq(orderSearch.getOrderStatus())
     		, nameLike(orderSearch.getMemberName()))
     .limit(1000)
     .fetch();
    

🖊 사용 이유

  • 직관적인 문법(자바)
  • 컴파일 시점에 오류를 잡아준다.(자바)
  • 자동 완성 사용 가능.(자바)
  • 코드 재사용 가능.(동적 쿼리에 큰 이점이 된다.)

좋은 웹페이지 즐겨찾기