본문 바로가기

framework/jpa

[JPA] 엔티티 매핑 3

엔티티를 매핑하는 어노테이션은 4가지의 종류가 존재한다.

  1. @ManyToOne
  2. @OneToMany
  3. @OneToOne
  4. @ManyToMany

1. @ManyToOne, @OneToMany

 

객체 및 테이블 연관관계

테이블의 연관관계를 살펴보면 MEMBER, TEAM 테이블이 존재하고, MEMBER 테이블은 TEAM의 TEAM_ID를 FK를 가지고 있다.

위의 관계를 Entity로 설계하면 Member 객체는 Team을 참조한다.

연관관계의 주인은 Member 객체이다.

Member Class
Team Class

@Entity

  • 이 클래스를 JPA의 Entity로 설정한다.

@SequenceGenerator

  • 시퀀스 설정
  • 설정된 시퀀스는 @GenerationType을 통해 ID를 설정한다.
    • name : @GenerationType의 generator 속성을 통해 지정할 이름
    • sequenceName : 데이터베이스에서 사용될 시퀀스 이름
  • @GeneratedValue
    • 컬럼의 생성전략을 설정하기 위해 사용한다.

2. @OneToOne

객체 및 테이블 연관관계

일대일의 관계는 반대로 일대일이다. 그래서 주 테이블 또는 대상 테이블 중에 외래키를 선택하는 것이 가능하다.

객체적인 입장으로 봤을 땐 위의 관계처럼 Member에서 관리하는 것이 편하다.

예를 들면 Member 객체 하나만 조회한 경우에도 Locker의 데이터의 유무를 판단할 수 있다.

Member Class
Locker Class

3. @ManyToMany

테이블 연관관계

위의 테이블 연관관계를 매핑하기 위해선 매핑 테이블을 사용한다.

연관관계의 주인은 CATEGORY이다.

Category Class
Item Class

'framework > jpa' 카테고리의 다른 글

[JPA] 상속관계 매핑, mappedSuperclass  (0) 2023.04.23
[JPA] 엔티티 매핑 2  (0) 2023.04.09
[JPA] 엔티티 매핑 1  (0) 2023.04.08
[JPA] 기본 사용 방법  (0) 2023.04.07
[JPA] JPA 사용 이유 및 개념 정리  (0) 2023.04.07