Spring JPA [활용] Entity 클래스 개발2

신재원·2023년 1월 15일
1

Spring JPA 활용

목록 보기
2/18

N 대 M 관계일 경우

  • 관계형 데이터베이스는 정규화된 테이블 2개로 다대다 관계를 위의 예시처럼 표현할 수 없음
  • 연결테이블(Member_Product) 을 추가해서 일대다, 다대일 관계로 풀어내야함

(실무에서는 사용 X)

  • @ManyToMany 사용
  • 특별하게 @JoinColum이 아닌, @JoinTable을 사용한다.
  • 매핑할 "N" Entity 클래스
   @JoinTable(name = "테이블 이름 매핑",
    joinColumns = @JoinColumn(name = "Entity 클래스 Pk Column명"),
    inverseJoinColumns = @JoinColumn(name = "매핑할 테이블
    Entity 클래스 Pk Column명"))
  • 매핑할 다른 "M" Entity 클래스
@ManyToMany(mappedBy = "List 필드명") 

정리

  • 값타입은 Getter만 제공하여, 변경이 불가능하게 설계한다.
    • @Setter를 제거하고, 생성자에서 값을 모두 초기화하여 변경이 불가능한 클래스로 만든다.
  • 임베디드 타입(@Embeddable)은 자바 기본생성자를 !!설정해야한다.

0개의 댓글