• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

@Query vs QueryDSL

20.08.07 14:35 작성 조회수 518

0

안녕하세요. 강의 잘 듣고 있습니다.

거의 강의를 다 듣고 있는데요...한가지 아직 해결되지 않는 고민이 있어 질문 드립니다.

실무에서 개발가이드를 작성중에 있는데요...

기본적으로 Spring Data JPA 기반으로 제공되는 method와 추가 정의한 Query Method 기능을 사용하고

조건이 3개 이상이거나 복잡한 쿼리 같은 경우 @Query 기능이나 QueryDSL을 사용하려 합니다.

다만, @Query 를 사용해야 하는경우와 QueryDSL을 사용해야 하는 경우를 명확하게 구분해서 가이드하고 싶은데요...

(개발자분들이 관련 경험이 없어 가이드에 의존해야 하므로)

일반적으로 QueryDSL이 JPQL을 모두 커버하고 type-safe 하기 때문에 QueryDSL을 우선 권장을 할수 있을것 같은데요...

그래도 제 생각엔 @Query를 사용한 JPQL을 직접 작성하는 경우도 많이 사용할 것 같아서 실무에선 어떠셨는지 문의 드립니다.

질문을 요약하자면,

1. QueryDSL 보다 @Query를 통한 JPQL을 직접 작성 하는게 더 나은 경우가 있는지?

2. QueryDSL와  @Query 사용을 병행하는 경우 이에 대한 사용 기준을 어떻게 잡을 수 있는지?   

입니다.

혹시 실무 경험 공유가 어려우시다면... 일반적인 경우는 어떤지 문의 드립니다.

감사합니다. 

답변 2

·

답변을 작성해보세요.

2

유근일님의 프로필

유근일

질문자

2020.08.09

이번에도 빠르고 명확한 답변 감사드립니다. ^^

그럼  JPQL을 직접 작성하는 경우는 모두 QueryDSL로 가이드 하면 되겠네요.

예외 케이스는 native query정도가 될것 같고요.

감사합니다.

2

안녕하세요. 유근일님^^ 좋은 질문입니다.

질문을 자세히 잘 적어주셔서 상황이 딱 이해가 됩니다 ㅎㅎ

결론부터 말씀드리면 JPQL을 문자로 직접 작성하는 케이스라면 모두 Querydsl을 사용하도록 강제하는 것이 더 좋습니다.

@Query는 커스텀 클래스 없이 편리하게 개발 할 수 있는게 장점인데, 그것 말고는 사실 장점이 없습니다 ㅎㅎ

뭔가 가이드를 해야 한다면 애매한 것 보다는 Querydsl로 짜는게, 나중에 컴파일 시점에 문제들도 쉽게 찾을 수 있고 코드 추적도 쉬워서 더 좋습니다^^!

도움이 되셨길 바래요^^