1. 기본개념
2. 프로젝션 예시
SELECT m FROM Member m -> 엔티티 프로젝션
SELECT m.team FROM Member m -> 엔티티 프로젝션
SELECT m.address FROM Member m -> 임베디드 타입 프로젝션
SELECT m.username, m.age FROM Member m -> 스칼라 타입 프로젝션
3. 여러 값 조회 프로젝션 예시
//방법1. Query 타입으로 조회
List res1 = em.createQuery("select m.username, m.age from Member m")
.getResultList();
//방법2. Object[] 타입으로 조회
List<Object[]> res2 = em.createQuery("select m.username, m.age from Member m")
.getResultList();
//방법3. new 명령어로 조회
//단순값을 바로 DTO로 조회(생성자 호출)
List<MemberDTO> res3 = em.createQuery("select new jpql.MemberDTO(m.username, m.age) from Member m", MemberDTO.class)
.getResultList();