@ManyToOne Category parent 질문 있습니다.
553
34 asked
@ManyToOne
@JoinColumn(name = "parent_id")
private Category parent;
@OneToMany(mappedBy = "parent")
private List<Category> child = new ArrayList<>();
안녕하세요.
위 코드에서 부모 쪽에 다대일 매핑 한 이유를 알고 싶습니다.
아니면 DB 테이블 안에서 부모 셀프 외래 키를 만들어서
조회할 때 이 외래 키를 참조하여 자식 카테고리들까지 같이 조회하게 만들었기 때문에 테이블에서 다는 parent_id니까
jpa에도 parent에 다를 준 건 가 싶기도 해서요
필드 명에 부모 자식이 있어서 부모는 하나고 자식은 여러 개인데 부모 쪽에 다로 돼있어서 헷갈리네요..
Answer 2
0
parent 에 @ManyToOne 이 붙었지만 이를 해석할 때는
내(this) 기준에서 parent 는 N:1
마찬가지로 내 기준에서 child 는 1:N
이런식으로 받아들이면 될 거 같습니다
0
안녕하세요, 인프런 AI 인턴이에요.
예시 코드를 보면 Category 클래스에 @ManyToOne 어노테이션과 @JoinColumn 어노테이션이 적용되어 있습니다. 이는 부모-자식 관계를 매핑하기 위해서 사용되었습니다.
Category 클래스에서 parent 필드는 Category 타입의 부모 카테고리를 나타냅니다. 이 필드는 다대일 매핑으로 설정되어 있으며, parent_id라는 외래 키를 사용하여 연결됩니다. 이렇게 설정된 매핑은 부모 카테고리에 소속된 자식 카테고리들을 조회할 때 사용됩니다.
부모 카테고리의 경우, 다른 카테고리들이 참조하고 있을 수 있으므로 다대일 매핑을 사용하여 자식 카테고리들까지 같이 조회할 수 있도록 만들었습니다.
이렇게 구현하는 것은 데이터베이스의 테이블에서 parent_id라는 컬럼을 참조하여 원하는 카테고리와 해당 카테고리에 속한 자식 카테고리들을 함께 조회할 수 있게 됩니다.
필드 명이 부모-자식 관계를 나타내는 명칭으로 되어 있기 때문에 조금 헷갈릴 수 있을 것 같습니다. 하지만 이 매핑은 자식 카테고리들의 목록을 부모 카테고리에서 조회하는 것을 도와주는 목적으로 설정된 것입니다.
더 궁금한 점이 있다면 댓글로 알려주세요. 감사합니다!
실무 조언 관련 질문입니다.
0
36
1
H2데이터베이스 파일 생성
0
45
2
서브쿼리 강의에서 ALL 예시 관련 질문드립니다.
0
47
2
수정또는 삭제시 영속성 엔티티에 값이 무조건 있어야 하나요?
0
45
1
JPQL 메소드와 락
0
47
1
Delivery @OneToOne
0
54
1
17강 4~5분대 테이블 값 조회가 안됩니다.
0
84
2
UnsupportedOperationException 발생
0
80
3
H2 Database 연결이 안됩니다.
0
86
2
연관관계 매핑 질문드립니다.
0
77
2
h2데이터베이스 실행오류
0
103
2
persistence.xml
0
100
2
양방향 연관관계에서 연관관계의 주인(mappedBy)을 왜 꼭 정해야 하나요?
0
74
1
영속성 컨텍스트
0
59
1
JPA 프록시
0
86
1
Native Query와 MyBatis
0
60
1
영속성 컨텍스트는 어떤 메모리에 저장되는건가요?
0
81
1
임베디드 타입 예시 코드 관련 질문
0
110
3
명시적 조인에서 별칭을 주면 왜 객체에 접근할 수 있나요
0
89
3
인텔리제이 패키지 커서 단축키 질문
0
100
2
혹시 현재는 ID 데이터 타입이 String이면 안되나요?
0
133
1
양방향 연관관계 시 연관관계 주인을 설정하는 이유
0
67
1
임베디드 타입과 MappedSuperClass의 차이점이 궁금합니다.
0
95
1
데이터베이스가 초기화되는 것 같아요
1
172
2

