inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

자바 ORM 표준 JPA 프로그래밍 - 기본편

프록시

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

238

RealTake

작성한 질문수 11

0

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

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

java jpa

답변 1

0

나무늘보

안녕하세요. 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로 연결되는 필드를 만들순 있습니다. 그러나 강요사항은 아닙니다. 필요에 따라 연결할수도 아닐수도 있지요. 이처럼 객체에서는 단방향을 조합하여 양방향처럼 표현할 뿐, 엄밀히 말하면 양방향은 존재하지 않습니다.

 

감사합니다.

inheritance startegy 선택시 고려사항

0

10

0

Entity 동등성 비교

0

14

1

실무 조언 관련 질문입니다.

0

41

1

H2데이터베이스 파일 생성

0

52

2

서브쿼리 강의에서 ALL 예시 관련 질문드립니다.

0

49

2

수정또는 삭제시 영속성 엔티티에 값이 무조건 있어야 하나요?

0

48

1

JPQL 메소드와 락

0

53

1

Delivery @OneToOne

0

57

1

17강 4~5분대 테이블 값 조회가 안됩니다.

0

89

2

UnsupportedOperationException 발생

0

82

3

H2 Database 연결이 안됩니다.

0

89

2

연관관계 매핑 질문드립니다.

0

82

2

h2데이터베이스 실행오류

0

105

2

persistence.xml

0

103

2

양방향 연관관계에서 연관관계의 주인(mappedBy)을 왜 꼭 정해야 하나요?

0

77

1

영속성 컨텍스트

0

62

1

JPA 프록시

0

90

1

Native Query와 MyBatis

0

63

1

영속성 컨텍스트는 어떤 메모리에 저장되는건가요?

0

84

1

임베디드 타입 예시 코드 관련 질문

0

112

3

명시적 조인에서 별칭을 주면 왜 객체에 접근할 수 있나요

0

91

3

인텔리제이 패키지 커서 단축키 질문

0

106

2

혹시 현재는 ID 데이터 타입이 String이면 안되나요?

0

137

1

양방향 연관관계 시 연관관계 주인을 설정하는 이유

0

68

1