■ JPQL 이란?
JPQL에 대해 설명하기 전에 JPA는 기본적인 SQL을 처리해주기 때문에 SQL문을 직접 사용할 필요가 없었다. 하지만 JPA는 하나의 테이블을 대상으로 했을때만 가능한 이야기이며, 특정 데이터를 가져올 경우가 필요할 때는 불필요하게 모든 데이터를 가져오게 되는 낭비가 있다. 이러한 점을 해결하기 위해 JPQL (Java Persistence Query Language) 라는 쿼리 언어를 사용한다. SQL은 데이터베이스 테이블을 대상으로 쿼리가 작성 되지만, JPQL은 엔티티 객체를 대상으로 쿼리가 작성된다.
ex)
List members = em.createQuery("select m from Member m", Member.class).getResultList();
■ QueryDSL 이란?
JPQL의 빌더 역할을 하는 오픈소스이다.
ex)
QMember qMember = QMember.member; Member member = queryFactory.select(qMember) .from(qMember) .orderBy(qMember.id.asc()) .fetchFirst();
'develop > JPA, Hibernate' 카테고리의 다른 글
엔티티 매니저 등록/수정/삭제/조회 정리 (0) | 2019.11.24 |
---|---|
엔티티 매니저 설정, 생성과정 (0) | 2019.11.24 |
데이터베이스 방언 (0) | 2019.10.19 |
Hibernate 란? (0) | 2019.09.30 |
JPA, ORM이란 무엇인가? (0) | 2019.09.30 |