[Spring] DB 연관 관계 설정하는 방법

rekv·2025년 2월 5일

Spring

목록 보기
9/15

//A.java
@Entity
@Getter
public class A {
  @Id
  @GeneratedValue(strategy = GenerationType.IDENTITY)
  private Long idx;
  private String a01;
  private String a02;

  //A측에서도 B를 편하게 가져오기 위한 선언(외래키가 아님을 명시)
  @OneToMany(mappedBy = "a")
  private List<B> bList; //b가 여러개일 수 있으므로 List

}
//B.java
@Entity
@Getter
public class B {
  @Id
  @GeneratedValue(strategy = GenerationType.IDENTITY)
  private Long idx;
  private String b01;
  private String b02;

  @ManyToOne // b 기준으로 b가 n, a가 1이므로 ManyToOne
  @JoinColumn(name="a_idx") //JOIN 및 외래키 이름
  private A a; //외래키
}

다음과 같이 하나의 테이블 내에 여러 테이블의 기본키를 외래키로 설정하는 것도 가능하다.
이때, 1:N에서 1이 되는 테이블의 mappedBy는 외래키쪽에서 지정한 이름과 동일하게 설정해야 한다.
만약 1이 되는 테이블에서 N이 되는 테이블의 값을 필요로 하는 경우가 없다면, 코드의 간결성 등을 위해 1의 클래스에서는 @OneToMany~를 삭제해도 된다.

0개의 댓글