엔티티를 매핑하는 어노테이션은 4가지의 종류가 존재한다.
- @ManyToOne
- @OneToMany
- @OneToOne
- @ManyToMany
1. @ManyToOne, @OneToMany
테이블의 연관관계를 살펴보면 MEMBER, TEAM 테이블이 존재하고, MEMBER 테이블은 TEAM의 TEAM_ID를 FK를 가지고 있다.
위의 관계를 Entity로 설계하면 Member 객체는 Team을 참조한다.
연관관계의 주인은 Member 객체이다.
@Entity
- 이 클래스를 JPA의 Entity로 설정한다.
@SequenceGenerator
- 시퀀스 설정
- 설정된 시퀀스는 @GenerationType을 통해 ID를 설정한다.
- name : @GenerationType의 generator 속성을 통해 지정할 이름
- sequenceName : 데이터베이스에서 사용될 시퀀스 이름
- @GeneratedValue
- 컬럼의 생성전략을 설정하기 위해 사용한다.
2. @OneToOne
일대일의 관계는 반대로 일대일이다. 그래서 주 테이블 또는 대상 테이블 중에 외래키를 선택하는 것이 가능하다.
객체적인 입장으로 봤을 땐 위의 관계처럼 Member에서 관리하는 것이 편하다.
예를 들면 Member 객체 하나만 조회한 경우에도 Locker의 데이터의 유무를 판단할 수 있다.
3. @ManyToMany
위의 테이블 연관관계를 매핑하기 위해선 매핑 테이블을 사용한다.
연관관계의 주인은 CATEGORY이다.
'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 |