[JPA] 경로 표현식

경로 표현식

  • . (점)을 플로팅하여 개체 그래프 순회


경로 표현 용어집

  • 상태 필드(상태 필드)
    • 단순히 값을 저장하는 필드
      (예: m.사용자 이름)
  • 연관 필드(연관 분야)
    • 연관 분야
      • 고유한 값 매핑 필드
        : @ManyToOne, @OneToOne, 대상은 엔터티임
        (예: 엠팀)
      • 컬렉션 값과 관련된 필드
        : @OneToMany, @ManyToMany, 대상이 컬렉션인 경우
        (예: 주문과 함께)

경로 표현의 특징

  • 상태 필드(상태 필드)
    • 경로 검색 종료
    • 탐색 X
  • 고유한 값 매핑 경로
    • 암시적 내부 조인 발생
    • 검색하거나
  • 컬렉션 값 매핑 경로
    • 암시적 내부 조인 발생
    • 탐색 X
    • FROM 절의 명시적 링크를 통해 별칭을 얻은 경우 별칭을 통한 탐색이 가능합니다.

상태 필드 경로 순회

  • JPQL: 멤버 m에서 m.username, m.age를 선택합니다.

  • SQL: 멤버 m에서 m.username, m.age 선택

단일 값 매핑 경로 순회

  • JPQL: 선택 o. 회원 주문 또는
  • SQL:
    m을 선택하세요.*
    주문 또는
    o.member_id = m.id의 내부 조인 멤버 m

명시적 연결, 암시적 연결

  • 명시적 조인: 조인 키워드 직접 사용
    • 멤버 m에서 m 선택 m.팀 t에 합류
  • 암시적 조인: SQL 조인은 경로 식을 통해 암시적으로 발생합니다.


    (내부 조인만 해당)
    • 선택하다 엠팀 멤버 m에서

경로 표현 예

  • 주문 o -> 성공에서 o.member.team 선택
  • 팀 -> 성공에서 t.members 선택
  • 선택하다 t.회원.사용자명 팀 t에서 -> 오류
  • Team t에서 m.username 선택 t.members 가입 m -> 성공

경로 순회를 사용한 암시적 조인에 대한 주의 사항

  • 항상 내부에 연결
  • 컬렉션은 명시적 링크에 의한 경로 통과의 끝에서 별칭을 지정해야 합니다.

  • 경로 순회는 주로 SELECT 및 WHERER 절에서 사용되지만 암시적 조인으로 인해 SQL의 FROM(JOIN) 절에 영향을 미칩니다.

관행

  • 가능할 때마다 암시적 조인 대신 명시적 조인을 사용합니다.

  • 조인은 SQL 최적화의 중요한 부분입니다.

  • 암시적 링크는 링크가 무엇인지 한 눈에 보기 어렵게 만듭니다.


원천 : https://www.inflearn.com/course/ORM-JPA-Basic