# mappedBy

4개의 포스트
post-thumbnail

@JoinColumn과 mappedBy

JPA에서 1:N 양방향 관계인 Member와 Team 엔티티가 있다고 하자. **_Team.class **_Member.class 이 관계에서의 주인은 N인 Team 엔티티이고, Team 엔티티는 늘 Member 외래키를 지니고 있을 것이다. mappedBy는 연관 관계의 주인이 아닌 곳에 두어야 하니, Member에 두어야 한다. mappedBy의 값으로는 주인 엔티티에 존재하는 본인 외래키 필드 명을 적으면 된다. ex) Member.team JoinColumn의 name 속성은 말 그래도 Member 엔티티에 존재하는 team이라는 필드를 어떤 이름으로 Member 테이블에 컬럼명으로 설정할 것인지를 나타내주는 것이다. @JoinColumn(name="teamid") 라고 적었으면 그냥 Member 테이블에 teamid 라는 컬럼명이 정의되는 것이다. Team 엔티티 경우에는 mappedBy를

2023년 9월 4일
·
0개의 댓글
·
post-thumbnail

연관관계

공통 객체의 참조와 테이블의 외래 키를 매핑 방향 : 단방향, 양방향 다중성(Multiplicity) : 다대일(N:1), 일대다(1:N), 다대다(N:M), 일대일(1:1) 연관관계의 주인(Owner) : 객체 양방향 연관관계는 관리하는 주인이 필요 단방향 연관관계 쉽게 예제로 설명 회원과 팀이 있고, 회원은 하나의 팀에만 소속될 수 있다. (회원과 팀은 다대일 관계) 연관관계가 없는 객체 MEMBER 테이블에서 TEAM의 PK를 외래키로 갖고 있고, Member 객체에서 Team의 객체를 저장하고 생긴 PK를 저장하는 teamId 컬럼을 갖고 있다. \(즉, 참조 대신 외래 키를 그대로 사용해서 식별자를 직접 다룸

2022년 10월 23일
·
0개의 댓글
·
post-thumbnail

@JoinColumn vs mappedBy

프로젝트 진행 중 ManyToMany를 불가피하게 사용해야 할 상황이 생겼고 코드를 작성하는 중에 이러한 문제가 발생했었다. 이처럼 @JoinColumn과 mappedBy를 동시에 사용한게 문제였다. 연관관계 주인? 두 객체 간 연관관계를 나타낼 때 M:N 관계가 아닌 이상 한 객체에서 테이블의 FK를 관리해야 한다. 이때, 연관관계의 주인이란 FK를 가지고 있는 객체를 의미한다. (수정) 무조건 FK를 가지고 있는 객체가 아닌, FK를 관리하는 객체라고 보는 것이 맞을 것 같다. 일대다 단방향에서 예외가 존재한다. > 예시 Team 하나에 여러 Member가 들어갈 수 있다. Member 한 명은 소속 Tea

2021년 9월 1일
·
0개의 댓글
·

[JPA] 연관관계 매핑 기초 #2 (양방향 연관관계와 연관관계의 주인)

이번 글에서는 에 대해 알아보겠습니다. 이 시리즈 글은 김영한 님의 강의, 책을 보고 적은 것임을 알려드립니다. (강추) 오타 및 피드백 환영합니다. 양방향 연관관계 이전 글에서는 회원에서 팀으로만 접근하는 다대일 단방향 매핑을 알아 보았습니다. 이번에는 팀에서 회원으로 접근하는 관계를 접근하는 관계를 추가해서, 양방향 연관관계로 매핑을 해보겠습니다. image.png 먼저 객체 연관관계를 살펴보겠습니다. 위 그림을 보면, 회원과 팀은 다대일 관계입니다. 반대로 팀에서 회원은 일대다 관계입니다. 일대다 관계는 여러 건과 연관관계를 맺을 수 있으므로 컬렉션을 사용해야 합니다. 객체 연관관계는 다음과 같습니다. 회원 ➡️ 팀 (Member.t

2019년 10월 3일
·
4개의 댓글
·