ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Jpa 연관관계
    카테고리 없음 2023. 4. 19. 09:55

    jpa 연관관계

    객체의 연관관계는 단방향 관계이다. 하지만 데이터베이스는 양방향 관계다. A -> B 객체밖에 접근만 가능하지만 데이터 베이스는 A <-> B 둘다 가능하다.
    class A {
      B b;
    } 
    class B{
    }
    
    일반적으로 쓰는 단방향 연관관계다.
    class A {
      B b;
    }
    class B {
      A a;
    }
    
    양방향 연관관계다. 정확하게는 서로 다른 단방향 관계 2개다.
    • @ManyToOne
      다대일 관계 매핑 정보다. 글로벌 페치 전략을 설정 할 수 있다. 즉시로딩, 지연로딩
    • @JoinColumn
      외래 키를 매핑 할 때 사용한다. 속성 중 name에 매핑할 외래 키 이름을 지정한다. 기본값은 필드명_참조하는 테이블의 기본키 컬럼명
    • @OneToMany
      일대다 관계 매핑 정보다. 글로벌 페치 전략을 설정 할 수 있다. 즉시로딩, 지연로딩 mappedBy 속성으로 연관관계 주인이 아님을 설정한다.
    • @OneToOne
      일대일 관계 매핑 정보다. 일대일 관계에선 테이블 중 어느 곳이나 외래 키를 가질 수 있다. OneToMany처럼 mappedBy속성이 있어 연관관계 주인이 아님을 설정 할 수 있다.
    • @ManyToMany
      다대다 관계 매핑 정보다. mappedBy를 통해 연관관계 주인이 아님을 설정 할 수 있다. 실질적으로 편하긴해도 실무에선 한계가 있다 그러므로 mapping 테이블을 만들어서 사용하자!
    • 연관관계 주인
      연관관계의 주인은 외래키가 있는 곳이 주인이다. 주인만이 등록, 수정, 삭제가 가능하다. 주인이 아닐경우엔 조회만 가능하다. 항상 ManyToOne이 연관관계의 주인이 되기 때문에 mappedBy 속성이 없다. 꼭 주인이 등록, 수정, 삭제를 하자!

    댓글

Designed by Tistory.