목차
- QueryDSL - QueryDsl 페이징 사용하기
- QueryDSL - 사용자 정의 Repository
- QueryDSL - 동적 쿼리와 성능 최적화 조회
- QueryDSL - 순수 JPA 리포지토리와 Querydsl
- QueryDSL - SQL Function 호출하기
- QueryDSL - 수정, 삭제 벌크 연산
- QueryDSL - 동적 쿼리
- QueryDSL - 프로젝션과 결과 반환
- QueryDSL - 조인
- QueryDSL - 집계
- QueryDSL - 결과 조회
- QueryDSL - 검색 조건 쿼리
- QueryDSL - Q-Type 활용
- QueryDSL - JPA JPQL vs JPA QueryDSL
- QueryDSL 시작하기
JPA JPQL
JPQL 은 EntityManager 객체내
creatQuery
메소드를 이용해 쿼리를 작성한 후 실행한다.
|
JPA QueryDSL
JPA QueryDSL 은 JPA Entity 와 관련해 정적 타입으로 쿼리를 작성 하게 해주는 라이브러리
JPA QueryDSL 에서는 JPAQueryFactory 객체를 이용해 쿼리를 작성합니다. JPAQueryFactory 객체를 통해 생성된 쿼리가 JPA Entity 를 대상으로 쿼리를 생성하고 실행하고 상태를 관리하기 위해서는 EntityMagager 인스턴스가 필요합니다.
따라서, JPA 기능을 사용하고 Entity 를 대상으로 쿼리를 수행할 수 있도록 EntityMagager 객체를 JPAQueryFactory 객체 생성시 전달할 필요가 있습니다.
|
결과
select |
QueryDSL 특징
- Querydsl 은 Parameter binding 시 PreparedStatement 의 Parameter binding 을 사용해 SQL Injection 공격으로부터 안전하다.
- JPQL 은 런타임 오류가 발생하나 QueryDsl 은 컴파일시 에러가 발생하게 된다.