인프런 커뮤니티 질문&답변

kr즈아님의 프로필 이미지

작성한 질문수

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

mapped By 이름에 관해서

작성

·

941

0

mappedBy 자체가 외래키가 되지 않고, 연관관계의 주인이 아닌 것을 뜻한다고 이해하고 있습니다.

(등록, 수정, 삭제가 아닌 읽기만 가능.)

근데 여기서 궁금한 게 있습니다.

public class Member{

 (중략)

   @OneToMany(mappedBy="member")

   private List<Order> orders =  new ArrayList<>();

}

여기서 mappedBy="member"라고 설정하셨는데 

이름 같은건 보통 별도의 규칙없이 마음데로 써도 괜찮은건가요?

Item 객체에서 mappedBy="items"라 써서 궁금해서 물어봅니다.

mappedBy 뒤에 이름을 적는 게 무슨 의미인지 궁금합니다.

member가 아닌 members로 써도 상관이 없는건가요?

답변 1

2

안녕하세요. kr즈아님, 공식 서포터즈 OMG입니다.

mappedBy에는 반대 방향의 필드 이름이 와야 합니다. 가령 아래와 같은 코드가 있을 때 하이라이트 한 표시의 이름이 서로 같아야 됩니다.

@Entity
@Table(name="team")
public class Team {
@Id
@Column(name="team_id")
private long id;
@OneToMany(mappedBy="team")
private List<Member> members;
}

@Entity
@Table(name="member")
public class Member {
@Id
@Column(name="member_id")
private long id;
@ManyToOne
@JoinColumn(name="team_id")
private Team team;
}

감사합니다.

kr즈아님의 프로필 이미지
kr즈아
질문자

감사합니다

kr즈아님의 프로필 이미지

작성한 질문수

질문하기