항해 41일차 2022.02.19
테이블은 외래 키 하나로 두 테이블이 연관관계를 맺음
객체 양방향 관계는 A->B, B->A 처럼 참조가 2군데
객체 양방향 관계는 참조가 2군데 있음. 둘중 테이블의 외래 키 를 관리할 곳을 지정해야함
연관관계의 주인: 외래 키를 관리하는 참조
주인의 반대편: 외래 키에 영향을 주지 않음, 단순 조회만 가능
=== A 엔티티 ====
@Entity
public class A {
@Id
@GeneratedValue
@Column(name = "A_ID")
private Long id;
private String username;
@ManyToOne
@JoinColumn(name = "B_ID")
private B b;
}
=== B 엔티티 ====
@Entity
public class B {
@Id
@GeneratedValue
@Column(name = "B_ID")
private Long id;
private String name;
}
=== A 엔티티 ====
@Entity
public class test {
@Id
@GeneratedValue
@Column(name = "A_ID")
private Long id;
private String username;
@ManyToOne
@JoinColumn(name = "B_ID")
private B b;
public void setB(B b) {
this.b = b;
}
}
=== B 엔티티 ====
@Entity
public class B {
@Id
@GeneratedValue
@Column(name = "B_ID")
private Long id;
private String name;
@OneToMany(mappedBy = "B")
private List<A> aList = new ArrayList<>();
}