JPQL vs Querydsl

2023. 2. 10. 10:28· 카테고리 없음
목차
  1. JPQL
  2.  
  3. Querydsl
  4.  
  5. JPQL, Querydsl 비교
반응형
 

QueryDsl 도메인 생성

엔티티 생성 QueryDsl을 실제 사용하기에 앞서 쿼리에서 사용할 엔티티를 두 개 만들었다. 엔티티 테스트 그 후 연관관계나 세팅 등이 잘 됐는지 간단한 테스트를 실행해본다. in-memory DB 세팅 참고

dongb.tistory.com

앞선 포스트에서 만든 엔티티를 이용해 JPQL과 Querydsl을 비교해보겠다.
member와 team세팅 같은 작업은 BasicTest라는 코드를 만들어 적어두고 실제 테스트 코드에서 BasicTest를 상속하는 형태로 작성했다.

JPQL

먼저 memberName이 member1과 같은 멤버를 찾는 코드를 JPQL로 작성해보았다.


setParameter로 파라미터 바인딩을 통해 해당하는 member를 찾는 형태이다.

 

Querydsl

위와 같은 내용을 querydsl로 작성해보았다.


select나 where와 같은 쿼리가 코드로 되어 있어 이것을 사용해 쿼리를 작성하는 것을 볼 수 있다.

 

JPQL, Querydsl 비교

두 코드의 차이점은 다음과 같다.

  • Querydsl은 파라미터 바인딩을 하지 않더라도 자동으로 바인딩이 된다. SQL injection에서 장점을 가진다.
  • JPQL에서 쿼리를 잘못 입력하면 이 메서드를 호출했을 때에서야 쿼리가 잘못된 것을 알아차릴 수 있다. 반면 Querydsl은 컴파일 시점에 잘못된 쿼리를 알 수 있다.

JPAQueryFactory는 동시성 문제가 없기 때문에
필드로 빼서 사용해도 동시성 문제가 발생하지 않는다.

반응형
  1. JPQL
  2.  
  3. Querydsl
  4.  
  5. JPQL, Querydsl 비교
dongb
dongb
Actions lead thoughts.
dongb
Now or Never
dongb
전체
오늘
어제
  • 분류 전체보기 (87)
    • Kotlin (23)
    • Spring (24)
    • Java (5)
    • Istio (7)
    • Kubernetes (19)
    • CICD (2)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 네트워크
  • spring data jpa
  • oauth2.0
  • volume
  • Kotlin
  • Test
  • skaffold
  • POD
  • Database
  • Service
  • 챗GPT
  • configmap
  • ChatGPT
  • GPT-4
  • GPT
  • java
  • kubernetes

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.2
dongb
JPQL vs Querydsl
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.