N:M 연관관계
·
JPA
N:M 연관관계두 Entity가 @ManyToMany를 통해 서로 다수의 관계를 가진다. 객체와 데이터베이스의 N:M 연관관계객체객체는 Collection을 사용하여 N:M 설정이 가능하다 데이터베이스관계형 데이터베이스는 N:M 연관관계를 구현할 수 없다. 그래서 중간 테이블을 추가해서 1:N, N:1 관계로 만들어서 N:M 관계를 구현한다. N:M 단방향, 양방향코드 예시(단방향)@Entity@Table(name = "language")public class Language { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String name;}@Entity@Table(name = ..
1:1 연관관계
·
JPA
1:1 단방향두 Entity가 @OneToOne 을 통해 연관 관계를 맺는 경우를 말한다. 1:1 연관관계 단방향 그림1:1은 두 entity 중 아무나 외래키의 주인이 될 수 있다.(요기서는 Tutor로 가정) 1:1은 외래 키에 유니크 제약조건이 필요하다 코드 예시@Entity@Table(name = "address")public class Address { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String name;}@Entity@Table(name = "tutor")public class Tutor { @Id @GeneratedValue(strategy = G..
1:N 연관관계에서 1이 연관관계 주인일 때
·
JPA
1:N 단방향1:N 단방향이란 한 엔티티가 @OneToMany를 통해 여러 엔티티와 관계를 맺는 경우를 말한다. 이 경우 연관관계의 주인은 1에서 가지고 있다. 1:N 단방향 예시1의 Entity가 외래 키(FK)를 관리한다. ( Company entity가 연관관계의 주인이 된다) DB 입장에서는 설계상 항상 외래키가 N(Tutor) 쪽에 있어야 한다.하지만 현재 상황에서는 1(Company)이 N(Tutor)의 외래 키를 수정해야 한다. 코드 예시@Entity@Table(name = "tutor")public class Tutor { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private S..