

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

첫번째 쿼리문은 정확히 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();

setParameter(실제값, 변수명) 메소드를 사용하여 실질적으로 들어가는 값을 넣어줄 수 있다.
join의 종류는 이렇게 세가지가 있다.