inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

실전 예제 3 - 다양한 연관관계 매핑

@ManyToOne Category parent 질문 있습니다.

554

hoonseung

작성한 질문수 34

0

@ManyToOne

@JoinColumn(name = "parent_id")

private Category parent;

 

@OneToMany(mappedBy = "parent")

private List<Category> child = new ArrayList<>();

 

안녕하세요.

위 코드에서 부모 쪽에 다대일 매핑 한 이유를 알고 싶습니다.

아니면 DB 테이블 안에서 부모 셀프 외래 키를 만들어서

조회할 때 이 외래 키를 참조하여 자식 카테고리들까지 같이 조회하게 만들었기 때문에 테이블에서 다는 parent_id니까

jpa에도 parent에 다를 준 건 가 싶기도 해서요

필드 명에 부모 자식이 있어서 부모는 하나고 자식은 여러 개인데 부모 쪽에 다로 돼있어서 헷갈리네요..

 

 

java jpa

답변 2

0

조태준

parent@ManyToOne 이 붙었지만 이를 해석할 때는

내(this) 기준에서 parent 는 N:1

마찬가지로 내 기준에서 child 는 1:N

 

이런식으로 받아들이면 될 거 같습니다

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴이에요.

예시 코드를 보면 Category 클래스에 @ManyToOne 어노테이션과 @JoinColumn 어노테이션이 적용되어 있습니다. 이는 부모-자식 관계를 매핑하기 위해서 사용되었습니다.

Category 클래스에서 parent 필드는 Category 타입의 부모 카테고리를 나타냅니다. 이 필드는 다대일 매핑으로 설정되어 있으며, parent_id라는 외래 키를 사용하여 연결됩니다. 이렇게 설정된 매핑은 부모 카테고리에 소속된 자식 카테고리들을 조회할 때 사용됩니다.

부모 카테고리의 경우, 다른 카테고리들이 참조하고 있을 수 있으므로 다대일 매핑을 사용하여 자식 카테고리들까지 같이 조회할 수 있도록 만들었습니다.

이렇게 구현하는 것은 데이터베이스의 테이블에서 parent_id라는 컬럼을 참조하여 원하는 카테고리와 해당 카테고리에 속한 자식 카테고리들을 함께 조회할 수 있게 됩니다.

필드 명이 부모-자식 관계를 나타내는 명칭으로 되어 있기 때문에 조금 헷갈릴 수 있을 것 같습니다. 하지만 이 매핑은 자식 카테고리들의 목록을 부모 카테고리에서 조회하는 것을 도와주는 목적으로 설정된 것입니다.

더 궁금한 점이 있다면 댓글로 알려주세요. 감사합니다!

벌크연산에서 member.getAge 호출 시 영속성 컨텍스트에서 데이터를 가져오는건가요?

0

15

2

inheritance startegy 선택시 고려사항

0

21

1

Entity 동등성 비교

0

18

1

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

0

44

1

H2데이터베이스 파일 생성

0

55

2

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

0

52

2

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

0

51

1

JPQL 메소드와 락

0

55

1

Delivery @OneToOne

0

60

1

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

0

92

2

UnsupportedOperationException 발생

0

85

3

H2 Database 연결이 안됩니다.

0

92

2

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

0

84

2

h2데이터베이스 실행오류

0

107

2

persistence.xml

0

106

2

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

0

80

1

영속성 컨텍스트

0

64

1

JPA 프록시

0

94

1

Native Query와 MyBatis

0

67

1

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

0

85

1

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

0

114

3

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

0

94

3

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

0

108

2

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

0

142

1