JPA 란 "객체와 관계형 데이터베이스 테이블이 어떻게 매핑되는지를 이해하는 것"
단방향
JPA 에서는 기본적으로 두 엔티티 사이의 연관 관계를 단방향으로 정의한다.
이 상태에서는 한 쪽 엔티티는 연관 관계인 엔티티 객체를 조회할 수 있으나, 반대쪽 엔티티 객체는 어떤 엔티티 객체와 연관관계를 갖는지 알 수 없다.
양방향 연관 관계의 규칙
- 연관 관계를 갖는 두 객체 중 하나를 연관 관계의 주인으로 지정
- 연관 관계의 주인만이 외래키를 관리(삽입, 수정, 삭제)
- 주인이 아닌 쪽은 읽기만 가능
- 주인은 mappedBy 속성을 사용하지 않음
- 주인이 아닌 쪽은 mappedBy 속성을 사용하여 주인 지정
@Entity
테이블과 매핑할 엔티티
@Table
엔티티와 매핑할 테이블
@Id
데이터베이스 테이블의 기본 키와 객체의 필드를 매핑 ( 직접 할당)
@GeneratedValue
기본키를 자동으로 생성해주는 애노테이션
@GeneratedValue(strategy = GenerationType.IDENTITY : 기본 키 생성을 데이터베이스에 위임
@GeneratedValue(strategy = GenerationType.SEQUENCE : 유일한 값을 순서대로 생성
@Column
@ManyToOne @OneToMany
@JoinColumn
Entity의 연관관계에서 외래 키를 매핑하기 위해 사용.
name 속성 : 매핑할 외래 키의 이름 지정
'프로젝트' 카테고리의 다른 글
[공모전][제3회 DGB금융그룹 IT's DGB iM Challenger] 대한민국 디지털 인재 양성 프로젝트 < 발대식 및 본선 대회 > 회고 (1) | 2025.01.27 |
---|---|
JPA 페이징 처리 기법에 대해, 어느 방법이 내 프로젝트에 적격일까? (1) | 2024.09.07 |
[투스데이] 데이터베이스 외래 키 제약 조건 오류 해결 (1) | 2024.08.07 |
[투스데이_커뮤니티] 좋아요 기능 개발/ 좋아요 등록,취소를 하나의 api로 설계 (0) | 2024.07.18 |
[마잇(MyEat)] 주요 기능 정리, 도메인 모델 설계 (0) | 2024.04.12 |