• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

1:n 양방향, n:1 양방향의 차이에 대해서,,

24.05.01 21:31 작성 24.05.01 21:32 수정 조회수 57

0

제 머릿속에는? ㅠ 1:n 이든 N:1이든. 양방향이 된 순간
서로의 필드에 참조가능한 필드가 생기기 때문에 결국에는 같은걸 말하는것 같은데

많은 블로그 글에서는 1:N은 양방향은 jpa 스펙에 없다. 라고하는 글들이 많아서.. 헷갈립니다..

답변 1

답변을 작성해보세요.

0

codesweaver님의 프로필

codesweaver

2024.05.02

안녕하세요. RealTake님, 공식 서포터즈 코즈위버입니다.

데이터베이스의 관계는 양방향이라는 의미는 Order, OrderItem의 관계(1:N)를 예로들면, Order의 키가 'order_id' 라고 할 때 이 order_id로 인해 Order->OrderItem 과 OrderItem>Order 로의 방향이 생긴다는 뜻입니다. 이처럼 데이터베이스에서는 관계를 맺는 엔터티끼리 양방향이 강제됩니다. 만약 OrerItem에서 order_id 를 생략한다면 두 엔터티는 '관계'속에 있는것이 아니므로 아예 관계가 성립되지 않습니다.

 

반면, 객체에서는 양방향을 강요하지 않습니다. Order 엔터티의에서 OrderItem 으로 연결하기 위해 List<OrderItem> orderItems; 필드를 만들어 Order -> OrderItem 으로 방향을 설정할수 있습니다. 역으로 OrderItem 엔터티에서 Order로 연결되는 필드를 만들순 있습니다. 그러나 강요사항은 아닙니다. 필요에 따라 연결할수도 아닐수도 있지요. 이처럼 객체에서는 단방향을 조합하여 양방향처럼 표현할 뿐, 엄밀히 말하면 양방향은 존재하지 않습니다.

 

감사합니다.