JPQL - 인프런

객체지향 쿼리 언어(JPQL)

[1] JPQL 소개

// 검색
String jpql = "select m From Member m where m.age > 18";
List<Member> result = em.createQuery(jpql, Member.class).getResultList();

// 실행 SQL
select
    m.id as id,
	m.age as age,
	m.USERNAME as USERNAME,
	m.TEAM_ID as TEAM_ID
from
    Member m
where
    m.age > 18

[2] Criteria 소개

// Criteria 사용 준비
CriteriaBuilder cb = em.getCriteriaBuilder();
CriteriaQuery<Member> query = cb.createQuery(Member.class);

// 루트 클래스(조회 시작 클래스)
Root<Member> m = query.from(Member.class);

// 쿼리 생성 
CriteriaQuery<Member> cq = query.select(m).where(cb.equal(m.get("username"), "kim"));
List<Member> resultList = em.createQuery(cq).getResultList();

[3] QueryDSL 소개

// JPQL
// select m from Member m where m.age > 18
JPAFactoryQuery query = new JPAQueryFactory(em);
QMember m = QMemeber.member;

List<Member> list = query.selectFrom(m)
    					.where(m.age.gt(18))
    					.orderBy(m.name.desc())
    					.fetch();

[4] 네이티브 SQL 소개


[5] JPQL 소개


[6] JPQL - 페치 조인(Fetch Join)

image

select distinct t
  from Team t join fetch t.members
  where t.name = '팀A'

image

[7] 페치 조인의 한계

[8] 페치 조인 정리

Comments

comments powered by Disqus