🟡 JPQL 이란 ?
JPQL 은 엔티티 객체를 조회하는 객체지향 쿼리이다.
문법은 SQL 과 비슷하고 ANSI 표준 SQL 이 지원하는 기능을 유사하게 지원한다.
JPQL 은 SQL 을 추상화 해서 특정 DB 에 의존하지 않는다.
그리고 DB 방언만 변경하면 JPQL을 수정하지 않아도 자연스럽게 데이터 베이스를 변경할 수 있다.
예를 들어 SQL 함수라도 DB 마다 사용문법이 다른 것이 있는데,
JPQL 이 제공하는 표준화된 함수를 사용하면 선택한 방언에 따라 해당 DB 에 맞춘 적절한 SQL 함수가 실행된다.
JPQL 은 SQL 보다 간결하다.
🟣 JPQL 특징
- JPQL 은 객체지향 쿼리 언어이다. 따라서 테이블을 대상으로 쿼리 하는 것이 아니라 엔티티 객체를 대상으로 쿼리 한다.
- JPQL 은 SQL 을 추상화 해서 특정 DB SQL 에 의존하지 않는다.
- JPQL 는 결국 SQL 로 변환한다
🟣 JPQL 문법
- 예약어는대소문자 구분 안해요
- EX ) SELECT, FROM, AS ...
- 엔티티 이름을 지정하지 않으면 클래스 명을 기본 값으로 설정해요
- EX ) @Entity(name="XXX")
- 별칭은 필수
- EX ) Member AS m
🟣 회원 엔티티
@Entity(name="Member")
public class Member {
@Colum ( name="Member" )
private String username;
}
🟣 JPQL 사용
회원 이름이 'kim' 인 사람 조회
String jpql = "select m from Member as m where m.username = 'kim' ";
LIST<Member> resultList = em.createQuery( jpql, Member.class ).getResultList();
JPQL 에서 Member 은 엔티티 이름이다.
그리고 m.username 은 테이블 컬럼명이 아니라 엔티티 객체의 필드명이다.
em.createQuery() 메소드에 실행할 JPQL 과 엔티티 클래스 타입인 Member.class 를 넘겨주고
getResultList() 메소드를 실행하면 JPA 는 JPQL 을 SQL 로 변환해서 DB 를 조회한다.
'개발중 > Java Persistence API (JPA)' 카테고리의 다른 글
🟡 Criteria이란 ? (0) | 2021.07.01 |
---|---|
🟡 QueryDSL이란 ? (0) | 2021.07.01 |
객체 지향 쿼리 소개 (0) | 2021.07.01 |
Java 객체/ 기본값 타입의 특징 (0) | 2021.06.30 |
JPA - 값 타입 컬렉션 (0) | 2021.06.30 |