카테고리 없음

내일배움캠프 32일차 - Entity 연관 관계란 무엇일까?

본성 2024. 8. 29. 21:07
반응형

Spring 프레임워크의 꽃이 폈다.

 

그것은 바로 Entity의 '연'의 꽃을 가진 

 

'연관 관계' 이것을 어떻게 이해해야 하오....!

 

한 번 알아보자!


Entity 연관 관계란

Entity 연관관계란

 

1. Entity는 연관관계의 꽃으로 시작한다.

 

2. Entity로  RDB에서는 하나의 FK를 가지고 양쪽 테이블의 데이터를 모두 조회할 수 있지만 Entity의 경우 참조용 필드가 존재하는 쪽만 연관 관계를 가질 수 있다.

 

3. 흔히 단방향, 양방향 연관관계 라고 설명을 하는데 두 개의 엔티티에서 한쪽만 참조를 할 경우 단방향, 양쪽 모두 각각 단방향 참조를 할 경우 양방향 연관 관계라고 할 수 있다.

 

4. @OneToMany, @ManyToOne 등 어노테이션을 통해서 Entity 객체를 참조하여 연관 관계를 정의할 수 있다.

 

5. 그리고 연관관계는

 

- 테이블은 외래 키 하나로 두 테이블이 연관관계를 맺음 -> 객체 양방향 관계는 A->B , B->A 처럼 참조가 2군데

- 객체 양방향 관계는 참조가 2군데 있음!! 따라서 둘중 테이블의 외래 키를 관리할 곳을 지정해야 함

- 연관관계의 주인 : 외래 키를 관리하는 쪽

- 주인의 반대편 : 외래 키에 영향을 주지 않음!! Read Only

 

를 갖는다.

 

6. 먼저 단방향 연관관계 (@ManyToOne)는 RDB 관계에서 1:N 구조의 테이블에서 N에 해당되는 자식 테이블과 매핑되는 엔티티 객체에서 사용한다.

 

7. @JoinColumn 어노테이션을 사용해 해당 테이블의 FK 컬럼을 명시한다.

 

8. 필드는 자료형 대신 부모 테이블과 매핑되는 엔티티 객체를 참조형 필드로 선언한다.

 

9. 두번째인 양방향 연관관계(@OneToMany)는 RDB 관계에서 1:N 구조의 테이블에서 1에 해당되는 부모 테이블과 매핑되는 엔티티 객체에서 사용한다.


10. mappedBy 옵션을 통해 참조 객체의 필드명을 명시한다.


11. 1:N의 구조에서 N에 해당되는 데이터를 가져와야 하니 List 자료형을 사용하며 제네릭으로 매핑 관계에 있는 엔티티 객체를 참조한다.

 

12. @ManyToMany는 현업에서 잘 사용을 안 한다고 한다. 왜냐하면  연결 테이블이 단순히 연결만하고 끝나지 않음
=> JoinTable 가 단순히 join 을 위한 테이블로서 다루기 힘듦 : 주문시간, 수량 같은 데이터가 들어올 수 있음

따라서 JoinTable 을 하나의 Entity 로 승격시켜서 만들어 두면 해결 가능하다!!!

 

13. 이렇게 짧게나마 Entity를 알아보았다.

 

14. 이것만 알아도 Spring은 할 수 있지 않을까?

 

 


https://yeong-development-note.tistory.com/19

 

Spring JPA / Entity 연관관계

지난 포스팅에서는 JPA의 Entity에 대해서 작성을 했었는데요. Entity란 JPA에서 관리하는 DB와 매핑이 되는 객체를 뜻하며 객체 클래스 위에 @Entity을 사용해서 JPA에게 '해당 객체는 Entity로 사용을 할

yeong-development-note.tistory.com

https://terianp.tistory.com/170

 

Spring JPA (6) - JPA 개념 잡기 : 엔티티 연관관계 매핑 1:N, N:1, N:M, 1:1

1. 연관관계 매핑 시 고려사항 3가지 1) 다중성 - 관련 어노테이션 기억!! 다중성 어노테이션 주의사항 N:1 @ManyToOne 1:N @OneToMany 1:1 @OneToOne N:M @ManyToMany 실무에서 거의 사용 X 2) 단방향, 양방향 테이블

terianp.tistory.com

<출처>


오늘의 느낀 점

 

1. 방향이 중요하겠지?

 

2. 속도가 중요할까?

 

3. 인간은 기질이라는게 있을 텐데......

 

just do it

반응형