Posts [자바 ORM 표준 JPA 프로그래밍-기본편] 실전 예제3 - 다양한 연관관계 매핑
Post
Cancel

[자바 ORM 표준 JPA 프로그래밍-기본편] 실전 예제3 - 다양한 연관관계 매핑

본 포스팅은 인프러의 JPA 기본편을 수강하고 정리하는 내용입니다.


배송, 카테고리 추가 - 엔티티

  • 주문과 배송은 1:1(@OneToOne)
  • 상품과 카테고리는 N:M(@ManyToMany)

image

배송, 카테고리 추가 - ERD

image

배송, 카테고리 추가 - 엔티티 상세

image

만약 상위 카테고리가 존재한다면 아래처럼 활용할 수 있다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
@Entity
public class Category {

    @Id
    @GeneratedValue
    private Long id;

    private String name;

    @ManyToOne
    @JoinColumn(name = "PARENT_ID")
    private Category parent;

    @OneToMany(mappedBy = "parent")
    private List<Category> child = new ArrayList<>(); // 양방향 일때 자식 카테고리를 담을 멤버 변수

}

N:M 관계는 1:N, N:1로

  • 테이블의 N:M 관계는 중간 테이블을 이용해서 1:N, N:1
  • 실전에서는 중간 테이블이 단순하지 않다.
  • @ManyToMany는 제약: 필드 추가X, 엔티티 테이블 불일치
  • 실전에서는 @ManyToMany 사용X

@JoinColumn

외래 키를 매핑할 때 사용한다.

image

@ManyToOne - 주요 속성

  • 다대일 관계 매핑

image

@OneToMany - 주요 속성

  • 다대일 관계 매핑

image

This post is licensed under CC BY 4.0 by the author.

[자바 ORM 표준 JPA 프로그래밍-기본편] 다양한 연관관계 매핑

[자바 ORM 표준 JPA 프로그래밍-기본편] 상속관계 매핑