
@Entity
@Data
public class A {
@Id
@Column(name = "A_ID")
private Long id;
@ManyToOne
@JoinColumn(name = "B_ID")
private B b;
private String aa;
}
-- 🔺는 A 클래스 , 🔻는 B클래스
@Entity
@Data
public class B {
@Id
@Column(name = "B_ID")
private Long id;
private String bb;
}

@Entity
@Data
public class A {
@Id
@Column(name = "A_ID")
private Long id;
@ManyToOne
@JoinColumn(name = "B_ID")
private B b;
private String aa;
}
-- 🔺는 A 클래스 , 🔻는 B클래스
@Entity
@Data
public class B {
@Id
@Column(name = "B_ID")
private Long id;
@OneToMany(mappedBy = "b")
private List<A> a_list = new ArrayList<>();
private String bb;
}

⭐ 단점
매핑한 객체가 관리하는 외래 키가 다른 테이블에 있음
연관관계 처리를 위해 UPDATE SQL이 추가로 실행
@Entity
@Data
public class A {
@Id
@Column(name = "A_ID")
private Long id;
private String aa;
}
-- 🔺는 A 클래스 , 🔻는 B클래스
@Entity
@Data
public class B {
@Id
@Column(name = "B_ID")
private Long id;
@OneToMany(mappedBy = "b")
private List<A> a_list = new ArrayList<>();
private String bb;
}

@Entity
@Data
public class A {
@Id
@Column(name = "A_ID")
private Long id;
@OneToOne
@JoinColumn(name = "B_ID")
private B b;
private String aa;
}
-- 🔺는 A 클래스 , 🔻는 B클래스
@Entity
@Data
public class B {
@Id
@Column(name = "B_ID")
private Long id;
private String bb;
}

@Entity
@Data
public class A {
@Id
@Column(name = "A_ID")
private Long id;
@OneToOne
@JoinColumn(name = "B_ID")
private B b;
private String aa;
}
-- 🔺는 A 클래스 , 🔻는 B클래스
@Entity
@Data
public class B {
@Id
@Column(name = "B_ID")
private Long id;
@OneToOne(mappedBy = "b")
private A a;
private String bb;
}

@Entity
@Data
public class A {
@Id
@Column(name = "A_ID")
private Long id;
@OneToOne(mappedBy = "a")
private B b;
private String aa;
}
-- 🔺는 A 클래스 , 🔻는 B클래스
@Entity
@Data
public class B {
@Id
@Column(name = "B_ID")
private Long id;
@OneToOne
@JoinColumn(name = "A_ID")
private A a;
private String bb;
}


@Entity
@Data
public class A {
@Id
@Column(name = "A_ID")
private Long id;
@ManyToMany
@JointTable(name = "B",
joinColums = @JoinColumn(name = "A_ID"),
inverseJoinColumns = @JoinColumn(name = "B_ID"))
private List<B> b_list = new ArrayList<>();
private String aa;
}
-- 🔺는 A 클래스 , 🔻는 B클래스
@Entity
@Data
public class B {
@Id
@Column(name = "B_ID")
private Long id;
private String bb;
}
@Entity
@Data
public class A {
@Id
@Column(name = "A_ID")
private Long id;
@ManyToMany
@JointTable(name = "B",
joinColums = @JoinColumn(name = "A_ID"),
inverseJoinColumns = @JoinColumn(name = "B_ID"))
private B b;
private String aa;
}
-- 🔺는 A 클래스 , 🔻는 B클래스
@Entity
@Data
public class B {
@Id
@Column(name = "B_ID")
private Long id;
@ManyToMany(mappedBy = "a_list")
private List<A> a_list = new ArrayList<>();
private String bb;
}

💡 양방향으로 진행해야 함

@Entity
@Data
public class AB {
@Id
@Column(name = "AB_ID")
private Long id;
@ManyToOne
@JoinColumn(name = "A_ID")
private A a;
@ManyToOne
@JoinColumn(name = "B_ID")
private B b;
}