작성
·
153
0
4:55 정도 부분에 JPQL을 통해 Member를 조회해올 때 두번째 인자로 Member.class 대신 Team.class를 전달해야한다고 설명을 해주셨는데 두번째 인자로 줘야하는 Team.class 혹은 Member.class를 왜 주어야하는지 궁금합니다.
이전 영상인 TypedQuery와 Query를 설명해주실때
// 두번재 인자 있음
TypedQuery<Member> query1 = em.createQuery("select m from Member m", Member.class);
// 두번재 인자 없음?
Query query = em.createQuery("select m.username, m.age from Member m")
위 코드처럼 작성을 해주셨는데 두번째 인자의 역할이 무엇인지 적어야 할때와 적지않아도 될 때가 언제인지 궁금합니다!
답변 1
1
안녕하세요. LUA님 두번째 인자는 반환 Type을 확정해주는 기능입니다.
Java5부터 지원되는 Generic를 사용해서, 타입을 지정해서 찾아오는 방법입니다.
만약 이 두번째 인자가 없으면 (Member) 처럼 케스팅을 해주어야 합니다^^
반환 타입이 명확할 때는 TypeQuery를 사용하고, 반환 타입이 명확하지 않을 때는 Query를 사용해야 합니다.
해당 강의의 11:13을 참고해주세요^^
감사합니다.