jwkim.log
로그인
jwkim.log
로그인
[JPA] 객체지향 쿼리 개요
Jiwoo Kim
·
2020년 11월 17일
팔로우
0
JPA
Springboot
기술독서
0
JPA 마스터하기
목록 보기
13/14
객체지향 쿼리
SQL
JPQL
Structured Query Language
Java Persistence Query Language
데이터 중심의 쿼리
엔티티 객체 중심의 쿼리
DB 테이블 대상
객체 대상
JPA 공식 지원 기능
JPQL
Native SQL
Criteria Query (JPQL을 편하게 작성하도록 도와주는 API)
비공식 기능
QueryDSL (JPQL을 편하게 작성하도록 도와주는 API)
JDBC
MyBatis (Mapper 프레임워크)
JPQL
SQL을 추상화해서 특정 DB에 의존하지 않는다.
SQL보다 간결하다.
실행할 JPQL, 리턴할 엔티티 클래스 타입을 지정
자동으로 SQL로 변환하여 DB를 조회
지정된 엔티티를 생성하여 리턴
Criteria
JPQL을 생성하는 Builder Class
문자가 아닌 프로그래밍 코드로 JPQL을 작성할 수 있다.
컴파일 시점에 오류를 발견할 수 있다(단순 오타 등).
IDE를 사용하면 코드 자동완성을 지원한다.
동적 쿼리를 작성하기 편하다.
하지만, Criteria로 작성한 코드는 복잡하고 장황하여 불편하다는 큰 단점이 있다.
QueryDSL
Criteria와 같은 JPQL Builder Class
코드 기반이면서도 단순하고 쉽다.
쿼리 전용 클래스를 생성해야 한다.
Native SQL
JPQL이 지원하지 않는 SQL만의 기능을 사용할 때 필요
특정 DB에 의존하게 된다.
본 포스팅은
자바 ORM 표준 JPA 프로그래밍 (김영한 저)
을 읽고 정리한 내용입니다. (2020.09.15)
Jiwoo Kim
팔로우
이전 포스트
[JPA] 값 타입
다음 포스트
[JPA] Spring Data JPA, JpaRepository
0개의 댓글
댓글 작성