[jpa] 양방향 연관관계에서 서로간 컨트롤 할수있는 범위

전제

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
@Entity
class Member{
@Id
@GeneratedValue
@Column("id")
private Integer id;

@Column("name")
private String name;

@Column("age")
private String age;

@ManyToOne(optional = false)
@JoinColumn(name = "team_id")
private Team team;
}

@Entity
class Team{
@Id
@GeneratedValue
@Column("id")
private Integer id;

@Column("name")
private String name;

@OneToMany(mappedBy = "team")
private List<Member> members;
}

기본기능

  1. Member
    외래키 컨트롤 가능
    Team 업데이트 가능

  2. Team
    외래키 컨트롤 불가능
    자신에게 속한 모든 Member들 update 가능

연관관계 편의메서드를 추가함으로써 Member에서도 외래키 컨트롤 가능

remove 연관관계 편의 메서드 + 삭제 기능 을 제공하는 orphanRemoval이 있음
일반적인 연관관계 편의메서드는 delete 까지 수행하진 않고, FK를 null 처리함