본문 바로가기
Programming/JPA & Spring Data JPA 기초

15. 엔티티 간 N-1 단방향 연관 매핑

by JKROH 2023. 3. 28.
반응형
해당 강의는 코드 위주로 진행됩니다. 실질적인 객체 처리를 담당하는 코드는 링크에서 확인하시길 바랍니다.

* N-1 단방향 연관 매핑

  • 참조키를 이용한 N-1 관계를 생성할 수 있다.
  • sight_review는 sight에 대한 review를 저장하는 테이블이다.
  • sight_review는 sight_id를 통해 sight 테이블을 참조한다.

 

* N-1 단방향 연관 매핑 설정

  • Review 클래스에서 확인할 수 있다.
  • @ManyToOne, @JoinColumn(name = "참조할 칼럼")을 이용해 N-1 단방향 연관 매핑을 설정할 수 있다.

 

* 저장

  • Review를 저장 할 때, Sight가 필요하기 때문에 해당 Sight를 em.find()로 읽어온 뒤, Review 객체 인스턴스를 생성할 때 넘겨준다.
  • 저장을 하는 단계에서 Review는 join 칼럼으로 지정한 sight_id를 가져와서 저장한다.

 

* 조회

  • review를 조회하면, left join을 이용해서 sight_review와 sight를 join하고 한 번에 조회한다. 즉, review를 조회하면 연관된 sight도 같이 조회한다.
  • lazy로 바꾸면 review만 조회하고 sight값에 접근할 때 sight를 select 한다.

 

반응형

댓글