목차
JPA JPQL - Fetch Join
JPA JPQL - Projection (Select)
JPA JPQL (Java Persistence Query Language)
JPA - 객체지향 쿼리 언어
객체 지향 쿼리 언어 종류
JPQL
JPA Criteria
QueryDSL
네이티브 SQL
JDBC API 직접 사용, MyBatis, SrpignjdbcTemplate 함께 사용
JPQL
JPA 를 사용하면 엔티티 객체 를 중심으로 개발
문제는 검색 쿼리
검색을 할때도 테이블이 나닌 엔티티 객체 를 대상으로 검색
모든 DB 데이터를 객체로 변화해서 검색하는 것은 불가능
애플리케이션이 필요한 데이터만 DB 에서 불러오려면 결국 검색 조건인 포함된 SQL 이 필요
JPA 는 SQL 을 추상화한 JPQL 이라는 객체지향 쿼리 언어 제공
SQL 과 문법 유사, SELECT, FROM, WHERE, GROUP BY, HAVING, JOIN 지원
JPQL 은 엔티티 객체를 대상으로 쿼리
SQL 은 데이터 베이스 테이블을 대상으로 쿼리
public class JpaMain { public static void main(String[] ars) { EntityManagerFactory entityManagerFactory = Persistence.createEntityManagerFactory("hello"); EntityManager em = entityManagerFactory.createEntityManager(); EntityTransaction transaction = em.getTransaction(); transaction.begin(); try { String qlString = "select m from Member m where m.username like '%kim%'"; List<Member> result = em.createQuery(qlString, Member.class) .getResultList(); } catch (Exception e) { transaction.rollback(); } finally { em.close(); } entityManagerFactory.close(); }}