기본 JPQL 문법

Untitled

m이 뭔지 잘 몰랐는데 그냥 별칭이었다! JPQL에서는 필수라고 한다.

m이 뭔지 잘 몰랐는데 그냥 별칭이었다! JPQL에서는 필수라고 한다.

첫번째 쿼리문은 정확히 Member만 가져오기에 클래스 정보를 넣어줄 수 있지만, 두번째는 username과 age라는 서로 다른 특성을 가진 필드를 가져오기에 TypedQuery로 가져올 수 없다.

첫번째 쿼리문은 정확히 Member만 가져오기에 클래스 정보를 넣어줄 수 있지만, 두번째는 username과 age라는 서로 다른 특성을 가진 필드를 가져오기에 TypedQuery로 가져올 수 없다.

위의 내용을 기본적으로 숙지하고 사용하면 된다.

예시

EntityManager em;

// 1
em.createQuery("select m from Member m")
    .getResultList();

// 2
em.createQuery("select m from Member m where m.id = 10")
    .getResultList();

// 3
Query query = em.createQuery("select m from Member m where m.id = :userId")
						      .getResultList();
query.setParameter(10, userId);

// 4 member와 friend 가 1:N으로 연결되어 있을때
em.createQuery("select f from Friend f join f.receiver where f.sender.id = :sender")
    .getResultList();

Untitled

join의 종류는 이렇게 세가지가 있다.

join의 종류는 이렇게 세가지가 있다.