소개
학습 페이지
JPA는 사실 JPQL말고도 다양한 쿼리문을 지원한다.
- JPQL
- JPQ Criteira
- QueryDSL - 이 친구도 자바 코드를 SQL로 만드는 제네레이터이다.
- 네이티브 SQL - JPQL을 써도 DB에 종속적인, 표준SQL을 벗어난 그 DB만의 쿼리를 날려야 할때의 SQL을 말함.
- JDBC API직접 사용
JPQL이란?
- 모든 DB데이터를 객체로 변환해서 검색하는건 불가능하다.
- 그래서 애플리케이션이 필요한 데이터만 필터링해서 불러오려면 결국 검색 조건이 포함된 SQL이 필요하다.
- JPQL은 ANSI표준을 모두 지원하는, SQL을 추상화한 객체 지향 쿼리 언어이다.
- JPQL은 엔티티 객체를 대상으로 한다.
- 반면 SQL은 DB 테이블을 대상으로 함.
JPQL의 예
em.createQuery("select m From Member m where m.username like '%kim%'",
Member.class
).getResultList()//member는 테이블이 아니라 엔티티를 가리킴
위 JPQL을 실행시키면 다음의 SQL로 번역된다.
