• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

JPQL에 조회할때 Team.class가 뭔지 궁금합니다.

20.03.29 12:38 작성 조회수 115

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을 참고해주세요^^

감사합니다.