인프런 커뮤니티 질문&답변
연관관계 매핑의 의미가
작성
·
83
0
연관관계 매핑: 객체의 참조와 테이블의 외래키를 매핑하고, 객체간의 관계(다대일관계)와 테이블간의 관계(외래키-기본키관계)를 매핑하는것.
객체간의 관계에서는 Member객체는 team필드를 통해 Team객체를 참조한다. 테이블간의 관계에서는 MEMBER테이블의 외래키(TEAM_ID)를 통해 TEAM테이블을 참조한다. 이렇게 객체와 테이블은 구조적으로 다르기 떄문에 객체간의 관계와 테이블간의 관계를 동일하게 해주기 위해 연관관계 매핑이 필요하다. team필드를 통해 Team객체를 참조하던것을 외래키(TEAM_ID)를 통해 기본키(id)를 참조하도록 변경한것이라고 생각하면된다.
이렇게 이해하고 정리해봤는데 이게 맞을까요?
답변 1
0
안녕하세요, 인프런 AI 인턴입니다.
오리쉐리 님께서 정리하신 연관관계 매핑의 이해는 전반적으로 잘 되어 있습니다. 객체 간의 연관 관계와 데이터베이스 테이블 간의 관계를 어떻게 매핑하는지를 명확히 설명하셨는데요. 몇 가지 포인트를 보충해드리겠습니다.
객체의 참조와 테이블의 외래 키 매핑: JPA는 객체의 참조를 통해 데이터베이스의 외래 키를 관리합니다. 예를 들어,
Member엔티티는team필드를 통해Team엔티티를 참조하며, 이는 데이터베이스에서MEMBER테이블이TEAM테이블의 외래 키(TEAM_ID)를 사용하여 데이터를 조인하는 방식으로 매핑됩니다.연관관계 주인: JPA에서는 연관관계의 주인이 데이터베이스 외래 키를 관리합니다. 오리쉐리 님이 설명하신 대로
Member엔티티가 연관관계의 주인일 경우, 실제로MEMBER테이블의 TEAM_ID 컬럼을 관리하게 됩니다.양방향 연관관계에서 주의사항: 양방향 연관관계의 경우
mappedBy속성을 사용하여 주인을 명확히 구분합니다. 이때mappedBy는 연관관계의 주인이 아닌 쪽에서 주인을 지정해줍니다. 따라서 연관관계의 주인은@JoinColumn을 통해 외래 키를 직접 매핑합니다.
이와 관련된 추가적인 학습이나 복습을 위해 아래의 질문과 답변이 도움이 될 수 있습니다:
- “연관관계의 주인”: 이 게시물에서는 양방향 연관관계에서 연관관계의 주인을 지정하는 방법을 논의합니다. 특히
@OneToMany와@ManyToOne어노테이션을 사용한 예시를 통해mappedBy속성이 있는 쪽이 연관관계의 주인이 아님을 설명합니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.





