TypedQuery : 리턴 타입이 확실한 경우 사용
TypedQuery<Member> query1 = em.createQuery("select m from Member m", Member.class);
TypedQuery<String> query2 = em.createQuery("select m.username from Member m", String.class);
Query : 리턴 타입이 정확하지 않을 경우 사용
Query query3 = em.createQuery("select m.username, m.age from Member m");
단순 값을 DTO로 조회 : 패키지 명을 전부 적어야함
List resultList = em.createQuery("select new jpql.MemberDTO(m.username, m.age) from Member m").getResultList();
결과값을 collection 으로 받아올때는 .getResultList()
결과가 없으면 빈 리스트 반환(null X)
단일 결과값을 받을때는 .getSingleResult()
결과값이 정확히 하나여야함.
결과가 없다(NoResultException)
둘 이상(NonUniqueException)