2022/12/28 TIL | JPA (2) 연관 관계 매핑

    반응형

    💭 오늘의 학습 전략

    # 연관 관계 매핑

    ◼️ 참조 방향성 기준

     ◾단방향 연관 관계

     ◾양방향 연관 관계

    ◼️ 참조 객체수 기준

     ◾일 대 다 1:N

     ◾다 대 일 N:1

     ◾다 대 다 N:N

     ◾일 대 일 1:1

    🌼 학습한 것들

    ◾ JDBC와 달리 JPA는 양방향 매핑까지 지원

    ◾ 1:N

     ▪️ 1에 해당하는 클래스가 N에 해당하는 클래스 참조

     ▪️ 보통 N테이블 (FK) -> 1테이블 (PK)

     ▪️ 가급적 사용하지 않는다. @OneToMany 불필요한 update 발생

    ◾ N:1

     ▪️ @ManyToOne

       @JoinColumn(name="_FK_")

     ▪️ 객체 그래프 탐색을 통해 원하는 값을 확인하지 못할 때

       => 1:N 매핑을 추가해서 양방향 관계로 만들어주면 됨.

       => @OneToMany(mappedBy="N 클래스 FK 역할 필드")

    // Order Entity
    @ManyToOne
    @JoinColumn(name="MEMBER_ID")
    private Member member;
    
    //Member Entity
    @OneToMany(mappedBy="member")
    private List<Order> orders = new ArrayList<>();

    ◾ N:N

     ▪️ 두 개의 N:1 (단방향) 매핑 적용 후 필요한 경우 양방향 매핑 적용

     ▪️ @ManyToMany (X)

    ◾ 1:1

     ▪️ @OneToOne

     ▪️ @JoinColumn은 어디도 상관 없지만 적절한 방식 채택 필요

    🔥 보충이 필요한 것들

    ◾ N:N, 1:1 매핑

     

     

    💨 하루를 마치며

    1. 이해가 갈 듯 말 듯 했다. 특히 N:N

    2. N:1 매핑을 많이 해왔어서 그것만 익숙하고 나머지는 제대로 알지 못 하고 사용해왔던 것 같다.

    3. 1:1 매핑에서 어디에서 조인을 걸어줄 지는 더 공부해야겠다.

    4. 지각을 했다. 😴;;

    반응형

    댓글