인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

Inflearn Community Q&A

백엔드공부화이팅's profile image
백엔드공부화이팅

asked

Practice! Querydsl

Creating your own Querydsl support class

동적 쿼리

Written on

·

324

0

Where 절에서 동적 쿼리를 작성할 수 있듯이, orderBy 절에서도 동적쿼리를 작성해도 괜찮나요 ?
근데 orderBy 절은 null이 되면 안될 것 같은데 이런 경우에 동적으로 어떻게 해야하는지 궁금합니다.

또 실무에서는 where절과 order절 모두 동적 쿼리를 자주 사용하는지 궁금합니다

javajpa

Answer 1

0

yh님의 프로필 이미지
yh
Instructor

안녕하세요. 백엔드공부화이팅님

실무에서도 양쪽 모두 동적쿼리를 자주 사용합니다. (물론 본인이 어떤 요구사항에 맞추어 개발하는지에 따라 달라지겠지요? 동적 쿼리의 경우 상황에 따라 다르겠지만 보통은 order 보다는 where를 더 자주 사용합니다.)

orderBy에는 배열을 받도록 되어 있습니다. 값이 없는 경우 빈 배열을 넣어주시면 됩니다.

다음 코드를 참고해주세요.

@Test
void createdByTest() {
    JPAQueryFactory query = new JPAQueryFactory(em);

    List<Product> result = query
            .select(product)
            .from(product)
            .orderBy(orders())
            .fetch();
}

private static OrderSpecifier[] orders() {
    List<OrderSpecifier> specs = new ArrayList<>();
    //필요한 orderSpecs에 필요한 조건을 추가한다.
    specs.add(product.createdBy.desc());
    //배열로 반환한다.
    return specs.toArray(new OrderSpecifier[specs.size()]);
}

감사합니다.

백엔드공부화이팅's profile image
백엔드공부화이팅

asked

Ask a question