Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

메모장

JPA 연관관계 매핑 본문

Java

JPA 연관관계 매핑

doopang 2022. 1. 24. 00:42
  • 연관관계의 주인은 외래키의 위치를 기준으로 정해야 한다.
  • 연관관계 편의 메소드를 생성한다.(둘 중에 하나만 사용해야 한다. 둘 다 사용시 무한 루프가 생길 수 있다.)
@Entity
public class Member {
  @ManyToOne
  @JoinColumn(name = "TEAM_ID")
  private Team team;
  public void setTeam(Team team) {
    if (this.team != null) {
      this.team.getMember().remove(this)
    }
    this.team = team;
    team.getMember().add(this);
  }
}
@Entity
public class Team {
  @OneToMany(mappedBy = "team")
  private List memberList = new ArrayList<>();
  public void setMember(Member member) {
    memberList.add(member);
    if (member.getTeam != this) {
      member.setTeam(this);
    }
  }
}
  • 양방향 매핑 시에 무한 루프를 조심해야 한다.
    예) toString(), lombok, JSON 생성 라이브러리
  • 처음에 설계 시 단방향 매핑으로만 완료해야 한다.(양방향 매핑은 필요할 때 추가해도 된다.)
  • OneToOne일 시 FetchJoin 해주기, 안하면 N+1건 조회함.

'Java' 카테고리의 다른 글

JPA Transaction 분리하고 싶을 때  (0) 2022.04.10
JPA delete 다음에 insert 하기  (0) 2022.04.10
JPA 즉시 로딩과 지연 로딩  (0) 2022.02.02
JPA @MappedSuperclass  (0) 2022.02.02
JPA 상속관계 매핑  (0) 2022.02.02