엔티티 직접 사용
Last updated
Last updated
엔티티를 파라미터로 직접 전달하는 경우 JPQL에서 엔티티를 직접 사용하면 SQL에서 해당 엔티티의 기 본 키 값을 사용한다!!!
2. 식별자를 파라미터로 전달
오답 코드 m은 엔티티(테이블인데) memberId 이름으로 셋팅한 파라미터 타입은 member.getId()로써 타입 불일치로 에러가 떴다!!!
m은 Member 인데 파라미터 타입을 member.getId()로 셋팅했기 때문에 다음과 같은 에러가 발생
정답 코드
식별자로 파라미터 전달한 경우도 다음과 같이 동일하게 sql이 나오는 것을 확인할 수 있다!
엔티티 직접 사용 - 외래 키 값 외래키도 마찬가지로 엔티티를 직접 넣을 수도 있고 식별자를 넣을 수도 있다! 아래 코드에서 m.team은 Member 객체(엔티티) 외래키인 "TEAM_ID"이다. Member와 연관관계인 Team(team)
(오류)teamA에 member가 2개 이상인데 getSingleResult()로 값을 가져오려고 해서 NoUniqueResultException 오류 발생
파라미터 team은 PK이고, DB 입장에서 m.team은 FK로 매핑되어 있다. 객체 입장에서는 member, team 모두 객체지만 DB입장에서는 PK, FK 모두 식별자이다.
엔티티를 전달했는데 FK(Team의 PK)로 작성된 SELECT 쿼리문 확인