::JPA:: 기본 매핑, @Embeddable

MinJeongKim·2024년 2월 20일
0
post-thumbnail
  • 기본매핑

기본구조

- EntityManagerFactory 초기화
- DB 작업이 필요할 때마다

1. EntityManager 생성 
2. EntityManager로 DB 접근
3. EntityTransaction으로 트랙잭션 관리 

- 하지만 스프링과 연동할 때는 대부분 스프링이 대신 처리 함으로, 매핑 설정 중심으로 작업

영속 컨텍스트

- 엔티티를 메모리에 보관
- 변경을 추적해서 트랜잭션 커밋 시점에 DB에 반영

트랜잭션

- EntityManager를 사용해서 엔티티 단위로 CRUD 처리
- 트랜잭션

1. persist()
2. 수정
3. remove()

식별자

- 직접할당
- 식별 컬럼 방식 : 저장 시점에 INSERT 쿼리 실행
- 시퀀스 사용 방식 : 저장 시점에 시퀀스 사용해서 식별자 생성
- 테이블 저장 방식 : 저장 시점에 테이블 사용해서 식별자 생성


  • @Embeddable

@Embeddable

  1. 엔티티가 아닌 타입을 한 개 이상의 필드와 매핑할 때 사용
    ex) ADDRESS, MONEY 등 매핑
  2. 엔티티의 한 속성으로 @Embeddable 적용 타입 사용
    ex) 클래스 생성 후 @Embeddable 어노테이션 적용 / entity에 적용할 속성 컬럼에는 @Embedded 어노테이션 적용
@Embeddable을 사용하면 모델을 분리해서 더 잘 표현할 수 있음 

다른 테이블에 값을 저장할 때

방법1. @SecondaryTable + 테이블명
방법2. @SecondaryTable + @AttributeOverride

 @SecondaryTable
- 다른 테이블에 저장된 데이터를 @Embeddable로 매핑 가능 
- 1:1 관계인 두 테이블을 매핑할 때 종종 사용 

출처: https://www.inflearn.com/course/jpa-spring-data-%EA%B8%B0%EC%B4%88/dashboard

profile
웹 개발자 & DA

0개의 댓글