티스토리 뷰

기본 키를 애플리케이션에서 직접 할당하는 대신,

데이터베이스가 생성해주는 값을 사용하려면 어떻게 매핑해야할까?

 

★ 기본 키 매핑

 

- JPA가 제공하는 데이터베이스 기본 키 생성 전략

   1. IDENTITY : 기본 키 생성을 데이터베이스에 위임한다.

   2. SEQUENCE : 데이터베이스 시퀀스를 사용해 기본키를 할당한다.

   3. TABLE : 키 생성 테이블을 사용한다.

 

하지만 데이터베이스 벤더마다 지원하는 방식이 다르다.

오라클은 시퀀스 제공하지만 My SQL은 시퀀스를 제공하지 않는 것 처럼 다 다르다.

 

- 기본 키를 직접 할당하려면 @Id만 사용하면 되고,

   자동 생성 전략 사용 시, @Id 에 @GenerateValue를 추가하고 원하는 키 생성 전략을 선택하면 된다,

 

☆ 기본 키 직접 할당 전략

기본 키 직접 할당 전략은 em.persist( ) 로 엔티티를 저장하기 전에 애플리케이션에서 기본 키를 직접 할당하는 방법이다.

@Id
@Column(name = "id")
private String id;

@Id 적용 기능 자바 타입은 

1. 자바 기본형

2. 자바 래펴(Wrapper)형

3. String

4. java.util.Date

5. java.sql.Date

6. java.math.BigDecimal

7. java.math.BigInteger

이다.

Board board = new Board();
board.setId("id1") // 기본키 직접 할당
em.persist(board);

 

☆ IDENTITY 전략

    - 데이터베이스에 엔티티를 저장해서 식별자 값 획득 후 영속성 컨텍스트에 저장한다. 

      테이블에 데이터를 저장해야 식별자 값을 획득할 수 있다. 

 

☆ TABLE 전략

   - 데이터베이스 시퀀스 생성용 테이블에서 식별자 값을 획득 후 영속성 컨텍스에 저장한다.

 

☆ SEQUENCE 

     -  데이터베이스 시퀀스에서 식별자 값을 획득 후 영속성 컨텍스에 저장한다.

 


http://www.kyobobook.co.kr/product/detailViewKor.laf?ejkGb=KOR&mallGb=KOR&barcode=9788960777330&orderClick=LAG&Kc=

 

자바 ORM 표준 JPA 프로그래밍 - 교보문고

스프링 데이터 예제 프로젝트로 배우는 전자정부 표준 데이터베이스 프레임 | ★ 이 책에서 다루는 내용 ★■ JPA 기초 이론과 핵심 원리■ JPA로 도메인 모델을 설계하는 과정을 예제 중심으로

www.kyobobook.co.kr