Programming/JPA & Spring Data JPA 기초
15. 엔티티 간 N-1 단방향 연관 매핑
JKROH
2023. 3. 28. 17:37
반응형
해당 강의는 코드 위주로 진행됩니다. 실질적인 객체 처리를 담당하는 코드는 링크에서 확인하시길 바랍니다.
* 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 한다.
반응형