개발 공부

Spring QueryDSL 빌드 설정 작성하기

수달하나 2022. 1. 30. 21:14

실무에선 조건에 따라 실행되는 동적 쿼리가 많이 사용 된다.

복잡해져서 답 없는 미친 쿼리들을 작성하지 않기 위해 QueryDSL을 이용해보자.

 

 

우선 설정정보의 디펜던시에 querydsl을 추가 한다.

 

dependencies {

	implementation 'com.querydsl:querydsl-jpa'
	implementation 'com.querydsl:querydsl-apt'
}

def querydslDir = "$buildDir/generated/querydsl"

querydsl {

	library = "com.querydsl:querydsl-apt"
	jpa = true
	querydslSourcesDir = querydslDir
}

  
gradle 에서 compileQuerydsl을 활성화 시키면 새로운 폴더에 Q가 붙은 클래스들이 자동으로 생성된다.
(기존의 클래스에서 앞에 Q가 붙음)


이 클래스들을 이용해서 쿼리를 작성한다.

 

public List<Order> findAll(OrderSearch orderSearch){

    QOrder order = QOrder.order;
    QMember member = QMember.member;
    
    JPAQueryFactory query = new JPAQueryFactory(entityManager);
    
    return query
    	.select(order)
        .from(order)
        .join(order.member, member)
        .where(order.status.eq(orderSearch.getOrderStatus()), member.name.like(orderSearch.getMemberName()))
        .limit(1000)
        .fetch();
}